我可以只用id创建一个OneToOne关系吗?

时间:2012-12-19 18:34:42

标签: java jpa

在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。我可以通过添加一个getter来执行此操作,该getter委托给#getParent()。getId()并在#getParent()方法上放置一个JsonIgnore(对于child来说也是一样)但是我更喜欢让实体看起来像这样我想要它从一开始就不添加这些东西。可能,如果是这样的话?

谢谢!

1 个答案:

答案 0 :(得分:0)

没有。 Object如何与数字相关?毕竟这是一种O-O语言。

将某些内容标记为@OneToOne在语义上等同于数据存储区中的FK。如果您只是省略@OneToOne并使用数字,那么数据存储中没有 FK的数字列。所以JPA允许两者,但是一个给出了FK的好处,而另一个你只是通过"数字"周围没有与

相关的背景