hibernate之关于多对一单向关联映射
id | name |
1 | 张三 |
2 | 李四 |
id | name | p_id |
1 | 财务组 | 1 |
2 | 财务组 | 2 |
id | name |
1 | 财务组 |
2 | 开发组 |
id | name | G_id |
1 | 张三 | 1 |
2 | 李四 | 1 |
@Entity @Table(name="t_user") publicclass Person { private Integer id; private String name; private Integer age; private Group group; @ManyToOne public Group getGroup() { returngroup; } publicvoid setGroup(Groupgroup) { this.group = group; } @Id @GeneratedValue public Integer getId() { returnid; } publicvoid setId(Integerid) { this.id = id; } @Column(name="name") public String getName() { returnname; } publicvoid setName(Stringname) { this.name = name; } @Column(name="age") public Integer getAge() { returnage; } publicvoid setAge(Integerage) { this.age = age; } }
@Entity @Table(name="t_group") publicclass Group { private Integer id; private String name; @Id @GeneratedValue public Integer getId() { returnid; } publicvoid setId(Integerid) { this.id = id; } @Column(name="name") public String getName() { returnname; } publicvoid setName(Stringname) { this.name = name; } }
XML配置方法
package csg.hibernate.entity; publicclass Person { private Integer id; private String name; private Integer age; private Group group; public Group getGroup() { returngroup; } publicvoid setGroup(Groupgroup) { this.group = group; } public Integer getId() { returnid; } publicvoid setId(Integerid) { this.id = id; } public String getName() { returnname; } publicvoid setName(Stringname) { this.name = name; } public Integer getAge() { returnage; } publicvoid setAge(Integerage) { this.age = age; } }
package csg.hibernate.entity; publicclass Group { private Integer id; private String name; public Integer getId() { returnid; } publicvoid setId(Integerid) { this.id = id; } public String getName() { returnname; } publicvoid setName(Stringname) { this.name = name; } }
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="csg.hibernate.entity"> <class name="Person" table="t_user"> <id name="id"> <generator class="native" /> </id> <property name="name" /> <property name="age"/> <many-to-one name="Group" column="group_id"/> </class> </hibernate-mapping>
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="csg.hibernate.entity"> <class name="Group" table="t_group"> <id name="id"> <generator class="native"/> </id> <property name="name" /> </class> </hibernate-mapping>
到这里我们使用Junit测试一下!
publicclass JuniTest { privatestatic SessionFactory sessionFactory; @BeforeClass publicstaticvoid beforeClass() { Configuration cfg=new Configuration(); cfg.configure(); sessionFactory=cfg.buildSessionFactory(); } @Test public void add(){ try { Group group=new Group(); Session session = sessionFactory.getCurrentSession(); session.beginTransaction(); group.setName("部门"); session.save(group); Person person=new Person(); person.setAge(12); person.setName("张三"); person.setGroup(group); session.save(person); session.getTransaction().commit(); } catch (HibernateException e){ e.printStackTrace(); } } @AfterClass publicstaticvoid afterClass() { sessionFactory.close(); } }
ok!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。