1

在 JPA 中是否可以仅通过一个想法而不嵌入类来创建 @OnToOne 关系?例如:

@Entity public class Relationship {
   @Id
   @OneToOne
   private Long parentId; // instead of "private User parent;"

   @Id
   @OneToOne
   private Long childId; // instead of "private User child;"

   int type;

   ...

我不介意有一个带有惰性获取的 getter 方法,但我不需要一个,而且我宁愿不必拉入完整的父对象来处理子对象。另外,我想仅使用 id 而不是嵌入对象将其反序列化为 JSON。我可以通过添加一个委托给#getParent().getId() 的getter 并在#getParent() 方法上放置一个JsonIgnore 来做到这一点(对于孩子也是如此),但我更愿意让实体看起来像这样我希望它从一开始就不需要添加这些东西。可能,如果是的话怎么办?

谢谢!

4

1 回答 1

0

不,如何Object与数字相关?毕竟这是一种面向对象的语言。

将某些内容标记为 @OneToOne 在语义上等同于数据存储中的 FK。如果您只是省略 @OneToOne 并使用数字,那么您在数据存储区中有一个没有FK 的数字列。所以 JPA 两者都允许,但一个提供了 FK 的好处,而另一个你只是传递“数字”而没有与它们相关的上下文

于 2012-12-19T19:03:08.353 回答