`
cats_tiger
  • 浏览: 276498 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate Annotation 实现多对多关联

阅读更多
表结构是常见的User-Role关系,USERS表保存用户信息,ROLES表保存角色信息,USER_ROLE交叉表保存用户-角色对应关系.USERS表对应User类,ROLES表对应Role类。其中,User作为主控方。
在Role中,Set<User> users = new HashSet<User>(0);指向User,同样,User中的roles属性指向Role.
在User中:
  @ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, 
fetch = FetchType.LAZY) 
  @JoinTable(name="USER_ROLE", joinColumns={@JoinColumn(name="USER_ID")},
    inverseJoinColumns={@JoinColumn(name="ROLE_ID")})
  public Set<Role> getRoles() {
    return this.roles;
  }

在Role中:
  @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE },
      fetch = FetchType.LAZY, mappedBy="roles")  
  public Set<User> getUsers() {
    return this.users;
  }

注意mappedBy的用法,相当于HBM的inverse属性。
使用的时候需要注意建立双向关联
Role role = new Role();
User user = new User();
role.getUsers().add(user);
user.getRoles().add(role);
save(role);
save(user);
分享到:
评论
3 楼 rain16881 2008-07-22  
好样的..我的问题解决了..这个是双向的吗?
2 楼 xplazy 2007-05-22  
不错学习中。
1 楼 fantasy 2007-04-02  
支持下,有demo了就好做了!
楼主啊!user代码里的tch应该是fetch.

相关推荐

    hibernate annotation hibernate3

    《Hibernate注解与Hibernate3深度解析》 在Java开发领域,Hibernate作为一种强大的对象关系映射(ORM)框架...通过熟练掌握这些注解,开发者可以更好地运用Hibernate进行数据持久化操作,实现高效、灵活的数据库交互。

    hibernate annotation 中文文档

    - `@OneToOne`, `@OneToMany`, `@ManyToOne`, `@ManyToMany`: 用于处理各种关联关系,如一对一、一对多、多对一、多对多。 3. **继承与多态** - `@Inheritance`: 定义继承策略,如SINGLE_TABLE(单表)、JOINED...

    最全的Hibernate Annotation API文档

    在Hibernate中,注解(Annotation)是一种声明式的方法,用于配置实体类、属性以及它们与数据库表之间的映射关系。本文将深入探讨“最全的Hibernate Annotation API文档”中的关键知识点。 一、实体类(Entity) 在...

    Hibernate Annotation 唯一外键一对一双向关联

    在Java的持久化框架Hibernate中,`@OneToOne`注解用于表示一对一的关联关系,而唯一外键一对一双向关联则是这种关系的一种具体实现方式。这篇文章将深入探讨这一概念,帮助你理解如何在实际开发中应用。 首先,我们...

    Hibernate Annotation 中文文档

    在这个例子中,`User`类代表了`users`表,`id`是主键,`username`是表的一个列,`role`是与`Role`类的一对多关联。 **4. 注解的优势** - **简洁性**:注解使得ORM配置与实体类代码紧密集成,减少了XML配置文件的...

    Hibernate Annotation 基于外键的一对多双向关联

    本文将深入探讨如何使用Hibernate注解实现基于外键的一对多双向关联。我们将通过具体实例来解析这个主题,并结合源码分析其工作原理。 首先,我们要明白一对多关联意味着一个实体可以拥有多个关联的实体。在数据库...

    Hibernate Annotation库

    例如,`@ManyToOne`表示一对多的关系,`@OneToMany`则表示多对一的关系,它们可以方便地处理复杂的数据库关系。 3. **ejb3-persistence.jar**: 这个jar包是Java EE企业版中的一部分,包含了JSR 303(Java ...

    Hibernate annotation JPA 一对多,多对多

    在本主题中,我们将深入探讨使用Hibernate注解来实现JPA的一对多、多对多和多对一的关系映射。 1. **一对多关系**: 在现实世界中,一个老师可以教多个学生,或者一个班级可以包含多个学生,这就是典型的一对多...

    Hibernate Annotation 共享主键一对一双向关联

    在实际的项目开发中,我们经常遇到各种各样的关联关系,比如一对一、一对多、多对一、多对多等。本文将详细讲解“Hibernate Annotation 中的共享主键一对一双向关联”。 首先,我们需要理解什么是共享主键(Shared ...

    Hibernate Annotation 学习笔记

    《Hibernate Annotation 学习笔记》 在Java的持久化框架中,Hibernate以其强大的功能和易用性成为开发者首选之一。...在后续的学习笔记中,我们将继续探索更多关于Hibernate Annotation的实用技巧和高级特性。

    Hibernate Annotation入门

    **Hibernate Annotation 入门** Hibernate 是一款非常流行的Java对象关系映射(ORM)框架,它允许开发者使用面向对象的方式操作数据库。而Hibernate Annotation是Hibernate的一个重要特性,它通过在Java类和字段上...

    Hibernate Annotation 基于外键的单向多对一关联

    本篇文章将深入探讨如何使用Hibernate Annotation来实现基于外键的单向多对一关联。 在关系型数据库中,多对一关联是一种常见的关系类型,意味着一个实体(如表)可以与另一个实体有多条记录关联,而另一个实体只能...

    hibernate annotation api chm文件

    - `@OneToMany`, `@ManyToOne`, `@OneToOne`, `@ManyToMany`: 定义不同类型的关联关系,如一对一、一对多、多对一和多对多。 3. **实体类的注解示例** 一个简单的User实体类可能如下所示: ```java @Entity @...

    Hibernate_Annotation关联映射

    和其它许多批注一样,在多对多关联中很多值是自动生成,党双向多对多关联中没有定义任何物理映射时,Hibernate根据以下规则生成相应的值,关联表名:主表表名+下划线+从表表名,关联到主表的外键名:主表名+下划线+...

    Hibernate distribution and annotation

    6. **@OneToMany, @ManyToOne, @OneToOne, @ManyToMany**: 用于定义关联关系,如一对一、一对多、多对多等。 7. **@Temporal**: 用于日期和时间字段的特殊处理,如TIMESTAMP、DATE或TIME。 8. **@Inheritance**...

    HibernateAnnotation

    ### HibernateAnnotation 技术概述 在Java开发领域中,Hibernate框架是进行对象关系映射(Object-Relational Mapping,简称ORM)的一种非常流行的工具。它能够帮助开发者将面向对象的模型与关系型数据库进行桥接,...

    hibernate-Annotation.jar

    - `@ManyToMany`:多对多关联,两个实体类之间存在多对多的关系,通常需要一个中间表来维护关系。 5. **懒加载和级联操作注解** - `@LazyCollection(LazyCollectionOption.EXTRA)`:用于实现懒加载,只有在真正...

    hibernate-annotation

    6. `@OneToMany`, `@ManyToOne`, `@OneToOne`, `@ManyToMany`:这些注解用于描述多对一、一对多、一对一和多对多的关联关系。例如,一个用户可以有多个订单: ```java @Entity public class User { @Id private ...

    Hibernate一对多(多对一)双向关联(annotation/xml)

    在Java的持久化框架Hibernate中,一对多(Many-to-One)和多对一(One-to-Many)的关系映射是数据库关系模型中的常见关联类型。本文将深入探讨这两种关联方式在使用Hibernate时的配置,包括基于注解(Annotation)和...

Global site tag (gtag.js) - Google Analytics