zoukankan      html  css  js  c++  java
  • hibernate----1-N--jointable(人与地址)

    package com.ij34.dao;
    
    
    
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.Set;
    
    import javax.persistence.*;
    
    @Entity
    @Table(name="people_inf")
    public class People implements java.io.Serializable{
        private static final long serialVersionUID = 1L;
        @Id @Column(name="people_id")
        @GeneratedValue(strategy=GenerationType.IDENTITY)
        private Integer id;
        private String name;
        private int age;
        @OneToMany(targetEntity=Address.class) //与另一个相比,没有mappedBy="people"
        @JoinTable(name="people_address"
        ,joinColumns=@JoinColumn(name="peopleId" ,referencedColumnName="people_id")
        ,inverseJoinColumns=@JoinColumn(name="addressId" ,referencedColumnName="address_id" ,unique=true)
        )
        private Set<Address> address=new HashSet<>();
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public Set<Address> getAddress() {
            return address;
        }
        public void setAddress(Set<Address> address) {
            this.address = address;
        }
    
        
    }

    package com.ij34.dao;
    
    import javax.persistence.*;
    
    @Entity
    @Table(name="Address_inf")
    public class Address{
        @Id @Column(name="address_id")
        @GeneratedValue(strategy=GenerationType.IDENTITY)
        private int addressId;
        private String message;
        @ManyToOne(targetEntity=People.class)
        
        @JoinTable(name="people_address"
        ,joinColumns=@JoinColumn(name="addressId" ,referencedColumnName="address_id" ,unique=true)
        ,inverseJoinColumns=@JoinColumn(name="peopleId" ,referencedColumnName="people_id" )
        )
        private People people;
        public int getAddressId() {
            return addressId;
        }
        public void setAddressId(int addressId) {
            this.addressId = addressId;
        }
        public String getMessage() {
            return message;
        }
        public void setMessage(String message) {
            this.message = message;
        }
        public People getPeople() {
            return people;
        }
        public void setPeople(People people) {
            this.people = people;
        }
        
    }

    package com.ij34.web;
    
    
        import org.hibernate.Session;
        import org.hibernate.SessionFactory;
        import org.hibernate.Transaction;
        import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
        import org.hibernate.cfg.Configuration;
        import org.hibernate.service.*;
    
    import com.ij34.dao.Address;
    import com.ij34.dao.People;
        public class test01 {
        public static void main(String[] args)throws Exception {
        //实例化Configuration
        Configuration conf=new Configuration().configure();
        ServiceRegistry SR=new StandardServiceRegistryBuilder().applySettings(conf.getProperties()).build();
        // 以Configuration实例创建SessionFactory实例
        SessionFactory SF=conf.buildSessionFactory(SR);
        //create session
        Session session=SF.openSession();
        //start 事务
        Transaction tx=session.beginTransaction();
        People person = new People();
        person.setAge(29);
        // 为复合主键的两个成员设置值
       People people=new People();
       people.setAge(22);
       people.setName("林彪");
       Address a=new Address();
       a.setMessage("广州");
       a.setPeople(people);
       Address a2=new Address();
       a2.setMessage("香港");
       people.getAddress().add(a2);
       session.persist(a);
       session.save(people);
       session.persist(a2);
        tx.commit();
        session.close();
        SF.close();
        }
        }
  • 相关阅读:
    ThinkPHP 3 的输出
    zookeeper 伪集群模式
    zookeeper
    MVC模式和URL访问
    全民上云时代,如何降低成本?
    华为云教你7天玩转电商应用性能调优,课程免费速来报名!
    一统江湖的大前端(6)commander.js + inquirer.js——懒,才是第一生产力
    一统江湖的大前端(5)editorconfig + eslint——你的代码里藏着你的优雅
    一统江湖的大前端(4)shell.js——穿上马甲我照样认识你
    【Python3网络爬虫开发实战】1.3.1-lxml的安装
  • 原文地址:https://www.cnblogs.com/tk55/p/5968321.html
Copyright © 2011-2022 走看看