java - 多对多 : what is the correct or best way to go in JPA?

标签 java mysql jpa

我是 JPA 新手,正在学习。当我在 SQL 中有多对多关系黑白表时,例如 Author 和 Book:我使用了带有复合主键的连接表 AuthorBook。

应该如何在 JPA 中做到这一点:我应该只创建两个实体 Author 和 Book 并使用其中一个映射创建多对多关系(例如在 Author 中),并创建另一个自己的关系所有者:在 Books 中(使用 joinColumns)。

或者我还应该使用 JPA “加入”第三个实体 AuthorsBooks 吗? 什么方法是正确的呢?实际上有不同的方法还是唯一的方法是更好的方法?

除了我的具体问题之外,我想知道是否有人知道关于这个问题的一个很好的例子/教程? (我找不到好的)谢谢!

最佳答案

我找到了不同的来源和解决方案。我认为最好的就像这里:认为在这里https://en.wikibooks.org/wiki/Java_Persistence/ManyToMany 他们说这是创建具有多对多关联的两个实体的标准方法,但是,如果联接表应该具有附加列,那么最好的方法是创建三个实体,包括用于联接表的实体(链接中给出了两种情况的示例)

关于java - 多对多 : what is the correct or best way to go in JPA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48196892/

相关文章:

java - 从 Spring Controller 发送重定向

php - 使用主/外键更新 php 中的数据

php - 根本不显示消息?

java - 结合整数和字符串参数的 JPA 标准谓词查询

java - 是否可以保存时间选择器的数据并在下次应用程序启动时显示它们?

java - Apache Commons VFS - 无法解析文件

java - 如何从 WebApp 读取 web.xml

mysql - mysql命令耗时太长,有什么简化的吗?

java - 使用 @IdClass 的带有额外列的 JPA 多对多在 springTestContextPreparation Hibernate AnnotationException "has no persistent id property"中失败

java - 标准 API : Select Expression IF [NOT] NULL <value>