【发布时间】:2015-09-15 01:39:11
【问题描述】:
我正在开发一个 JavaEE 应用程序,我使用 JPA/Hibernate 作为持久性引擎。在开发应用程序时,我想到了一些问题。
应用程序由 N:M 关系中的用户及其角色组成。这是上述表格的数据库子集。
我对 Hibernate 比较陌生,起初我要求 IntelliJ IDEA 为我生成映射。它所做的是生成以下 Java 类:
- UserEntity.java
- RoleEntity.java
- UserXRoleEntity.java
- UserXRoleEntityPK.java
因此,它为关系表和两个 1:N 关系生成了一个映射,一个在user 和userXrole 之间,一个在role 和userXrole 之间。
经过一番研究,我发现通过使用@ManyToMany 注解,我可以省略将userXrole 表映射到Java 类,只需在注解中将其声明为@JoinTable。
所以问题是:
- 为什么 IntelliJ 会以这种方式生成实体?
它只是一种更通用的方式来帮助生成,还是有任何其他优势。你会赞成一种方式还是另一种方式?
【问题讨论】:
标签: java database hibernate jpa intellij-idea