Hibernate标准java注释

时间:2014-09-25 17:46:19

标签: java hibernate annotations many-to-many criteria

我是Hibernate的新手,我有一个无法解决的问题,我看看类似的问题,但我没有运气......

我有一个表(让我们称之为T1)和另一个表(让我们称之为T2)。 T1与T2具有T2和T2的关系,因此它们具有多对多关系,所以我创建了一个桥表(让我们称之为T1_T2)。

T1.id< ----> T1_T2.T1id< ----> T2.id T2.id< ----> T1_T2.T2id< ----> T1.id

我的问题是下一个:我应该如何构建我的java clases(T1,T1_T2,T2)并使用条件进行查询,只给出一个 id(两个表中的任何一个)参数?

希望有人能帮助我,谢谢!

1 个答案:

答案 0 :(得分:1)

在@ManyToMany将t1_t2表指向关系后,可以使用注释@JoinTable。见http://en.wikibooks.org/wiki/Java_Persistence/ManyToMany

让我举一些例子,一个用户有很多权限,一个权限有很多用户

用户

@Table(name="USER")
public class User() {

      @Id
      private Integer id;

      @ManyToMany
      @JoinTable(
        name="USER_GROUP",
        joinColumns={@JoinColumn(name="USER_ID")},
        inverseJoinColumns={@JoinColumn(name="GROUP_ID")})
      private List<Group> groups;
      ...

  }

权限

@Table(name="GROUP")
public class Group(){

      @Id
      private Integer id;

      @JoinTable(
        name="USER_GROUP",
        joinColumns={@JoinColumn(name="GROUP_ID")},
        inverseJoinColumns={@JoinColumn(name="USER_ID")})
      private List<Users> users;
      ...

 }