Hibernate4映射之二: one2many双向映射(注解方式)

来源:互联网 发布:mmd如何载入动作数据 编辑:程序博客网 时间:2024/05/20 22:38
Group实体:@Entity@Table(name="t_group")public class Group {private int id;private String name;private Set<User> users;@Id@GeneratedValuepublic int getId() {return id;}public String getName() {return name;}public void setId(int id) {this.id = id;}public void setName(String name) {this.name = name;}@OneToMany(mappedBy="group")public Set<User> getUsers() {return users;}public void setUsers(Set<User> users) {this.users = users;}}

User实体:@Entity@Table(name = "t_user")public class User {private int id;private String name;private Group group;@Id@GeneratedValuepublic int getId() {return id;}public String getName() {return name;}public void setId(int id) {this.id = id;}public void setName(String name) {this.name = name;}@ManyToOne@JoinColumn(name="groupId")public Group getGroup() {return group;}public void setGroup(Group group) {this.group = group;}}
hibernate.cfg.xml配置文件:<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!-- Database connection settings --><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property><property name="connection.username">root</property><property name="connection.password">admin</property><!-- JDBC connection pool (use the built-in) --><!-- <property name="connection.pool_size">1</property> --><!-- SQL dialect --><property name="dialect">org.hibernate.dialect.MySQLDialect</property><!-- Enable Hibernate's automatic session context management --><property name="current_session_context_class">thread</property><!-- Disable the second-level cache --><property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property><!-- Echo all executed SQL to stdout --><property name="show_sql">true</property><property name="format_sql">true</property><!-- Drop and re-create the database schema on startup --><property name="hbm2ddl.auto">update</property><mapping class="com.bjsxt.model.Group"/><mapping class="com.bjsxt.model.User"/></session-factory></hibernate-configuration>
测试代码:@Testpublic void testOne2Many(){Session session = sessionFactory.getCurrentSession();session.beginTransaction();Group group = new Group();group.setName("group1");User user = new User();user.setName("zhangsan");User user1 = new User();user1.setName("lisi");Set<User> users = new HashSet<User>();users.add(user1);users.add(user);group.setUsers(users);session.save(group);session.save(user);session.save(user1);session.getTransaction().commit();}@Testpublic void testOne2Many1(){Session session = sessionFactory.getCurrentSession();session.beginTransaction();Group group = (Group)session.load(Group.class, 1);Set<User> users = group.getUsers();for (User user : users) {System.out.println(user.getName());}session.getTransaction().commit();}
	
				
		
原创粉丝点击