知识大全 Hibernate多对多双向关联(xml配置)

Posted

篇首语:大直若屈,大巧若拙,大辩若讷。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Hibernate多对多双向关联(xml配置)相关的知识,希望对你有一定的参考价值。

Hibernate多对多双向关联(xml配置)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  

  

  Role java

  package many many bean;

  import java util Set;

  public class Role

  private int id;

  private String name;

  private Set<User> users;

  public 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;

  

  public Set<User> getUsers()

  return users;

  

  public void setUsers(Set<User> users)

  this users = users;

  

  

  User java

  package many many bean;

  import java util Set;

  public class User

  private int id;

  private String name;

  private Set<Role> roles;

  public 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;

  

  public Set<Role> getRoles()

  return roles;

  

  public void setRoles(Set<Role> roles)

  this roles = roles;

  

  

  映射文件

  Role hbm xml

  <?xml version= encoding= UTF ?>

  <!DOCTYPE hibernate mapping PUBLIC

   //Hibernate/Hibernate Mapping DTD //EN

  hiber/hibernate mapping dtd >

  <hibernate mapping package= many many bean >

  <class name= Role table= roles catalog= Hibernate_Many Many >

  <id name= id column= id >

  <generator class= native />

  </id>

  <property name= name column= name />

  <set name= users table= user_role cascade= all >

  <key>

  <column name= role_id />

  </key>

  <many to many column= user_id class= User />

  </set>

  </class>

  </hibernate mapping>

  User hbm xml

  <?xml version= encoding= UTF ?>

  <!DOCTYPE hibernate mapping PUBLIC

   //Hibernate/Hibernate Mapping DTD //EN

   hiber/hibernate mapping dtd >

  <hibernate mapping package= many many bean >

  <class name= User table= users catalog= Hibernate_Many Many >

  <id name= id column= id >

  <generator class= native />

  </id>

  <property name= name column= name />

  <set name= roles table= user_role cascade= all >

  <key>

  <column name= user_id />

  </key>

  <many to many column= role_id class= Role />

  </set>

  </class>

  </hibernate mapping>

  导出的sql

  create table Hibernate_Many Many roles (

  id integer not null auto_increment

  name varchar( )

  primary key (id)

  )

  create table Hibernate_Many Many users (

  id integer not null auto_increment

  name varchar( )

  primary key (id)

  )

  create table user_role (

  role_id integer not null

  user_id integer not null

  primary key (user_id role_id)

  )

  alter table user_role

  add index FK BF ADA B F (role_id)

  add constraint FK BF ADA B F

  foreign key (role_id)

  references Hibernate_Many Many roles (id)

  alter table user_role

  add index FK BF A F FD F (user_id)

  add constraint FK BF A F FD F

  foreign key (user_id)

  references Hibernate_Many Many users (id)

  测试代码

  @Test

  public void insert()

  Session session=HibernateSessionFactory getSession();

  Transaction transaction=session beginTransaction();

  try

  transaction begin();

  User user=new User();

  user setName( 张三 );

  Role role=new Role();

  role setName( 管理员 );

  Set<Role> roles=new HashSet<Role>();

  roles add(role);

  user setRoles(roles);

  session persist(user);

  mit();

   catch (HibernateException e)

  e printStackTrace();

  transaction rollback();

  

  

  @Test

  public void select()

  Session session=HibernateSessionFactory getSession();

  User user=(User) session get(User class );

  System out println(user getName());

  Set<Role> roles=user getRoles();

  for (Iterator<Role> iterator = erator(); iterator hasNext();)

  Role role = (Role) iterator next();

  System out println(role getName());

  

cha138/Article/program/Java/ky/201311/28194

相关参考

知识大全 Hibernate持久化技术中多对多关系应用

Hibernate持久化技术中多对多关系应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Hi

知识大全 Hibernate对多表关联查询

Hibernate对多表关联查询  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由于公司项目的需

知识大全 应用数据库Hibernate对多表关联查询

Java相关:应用数据库Hibernate对多表关联查询  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 hibernate关联关系-多对一

  模型员工Employee—部门Department  Java代码  packageDomain;  publicclassEmployee  publicintgetId()  returnid

知识大全 hibernate.cfg.xml配置文件的说明

     在Eclipse中利用HibernateSynchronizer插件进行数据库表的映射数据查询和获取数据可以节省大量时间加速Hibernat

知识大全 list与iterator区别多双向关联配置

  对于Query接口的list()方法与iterator()方法来说都可以实现获取查询的对象但是list()方法返回的每个对象都是完整的(对象中的每个属性都被表中的字段填充上了)而iterator(

知识大全 hibernate的关联关系配置问题

  我现在有一个借阅信息类如下  classBorrow  privateStringborrowId;//借阅流水  privateBookbook;  privateUserborrowUser;

知识大全 hibernate 中inverse

  Inverse是hibernate双向关系中的基本概念inverse的真正作用就是指定由哪一方来维护之间的关联关系当一方中指定了inverse=false(默认)那么那一方就有责任负责之间的关联关

知识大全 Hibernate初学之一对多、多对一关系模型

Hibernate初学之一对多、多对一关系模型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  举

知识大全 Hibernate的多对一和一对多操作实例

Hibernate的多对一和一对多操作实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Hib