043:hibernate:一对多单向关联(Annotion)

来源:互联网 发布:机械图纸设计软件 编辑:程序博客网 时间:2024/06/16 18:52

1、在添加 @OneToMany标签时要加上@JoinColumn(name="groupId")

只写@OneToMany它会认为存在一张中间表

同时添加  private Set<User> users = new HashSet<User>();

package com.bjsxt.hibernate;import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.OneToMany;import javax.persistence.Table;@Entity@Table(name="t_group")public class Group {private int id;private String name;private Set<User> users = new HashSet<User>();@Id@GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@OneToMany@JoinColumn(name="groupId")public Set<User> getUsers() {return users;}public void setUsers(Set<User> users) {this.users = users;}}


 

package com.bjsxt.hibernate;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.ManyToOne;import javax.persistence.Table;@Entity@Table(name="t_user")public class User {private int id;private String name;@Id@GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}


2、

                  <mapping class="com.bjsxt.hibernate.Group"/><mapping class="com.bjsxt.hibernate.User"/>


 

*************************************************************************************************

在xml中:

对Group.hbm.xml:

<?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><class name="com.bjsxt.hibernate.Group" table="t_group"><id name="id"><generator class="native"></generator></id><property name="name"></property><set name="users"><key column="groupId"></key><one-to-many class="com.bjsxt.hibernate.User"/></set>    </class></hibernate-mapping>


对user.hbm.xml:

<?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><class name="com.bjsxt.hibernate.User" table="t_user"><id name="id"><generator class="native"></generator></id><property name="name"></property>    </class></hibernate-mapping>


 

   <mapping resource="com/bjsxt/hibernate/Group.hbm.xml"/>   <mapping resource="com/bjsxt/hibernate/User.hbm.xml"/>


 

0 0
原创粉丝点击