`
anrynlee
  • 浏览: 13854 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论
  • zczh3: N多年前 已经很多人讨论N遍:JAVA 与 C 只存在 传值, ...
    传引用

Hibernate一对多单向

阅读更多
一对多的单向练习
group方做为一的一方
user方作为多的一方
Group的类描述:
package com.anryn;

import java.util.HashSet;
import java.util.Set;

public class Group {

	private int id ;
	private String address ;
	private Set<User> users = new HashSet<User>() ;

	public Group() {
	}
	
	public Set<User> getUsers() {
		return users;
	}

	public void setUsers(Set<User> users) {
		this.users = users;
	}
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}
}

而对于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 package="com.anryn">
 <class name="Group" table="t_Group">
 	<id name="id">
 		<generator class="native"/>
 	</id>
 	<property name="address"/>
 	 <set name="users">
 	     <key column="groupId"></key>
 	     <one-to-many class="com.anryn.User"/>
 	 </set>
 </class>

</hibernate-mapping>


user类中只有几个一般属性
通过测试代码可知:最终生成了两张表,产生了一个外键,groupId做为user的一个外键和group相关联。
package com.anryn;

import java.util.Date;

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.Test;

public class HibernateXMLTest {

	@Test
	public void testSchemaExport() {
		new SchemaExport(new AnnotationConfiguration().configure()).create(false, true) ;
	}
}

分享到:
评论
Global site tag (gtag.js) - Google Analytics