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()に委任するゲッターを追加し、#getParent()メソッドにJsonIgnoreを配置します(子についても同じです)が、エンティティに見栄えを良くしたいと思いますこのようなものを追加せずに、最初からやりたいと思っています。可能で、もしそうならどのように?

ありがとう!

4

1 に答える 1

0

いいえ、どのようObjectに数値に関連付けることができますか? 結局のところ、これはオブジェクト指向言語です。

何かに @OneToOne というラベルを付けることは、データストアの FK と意味的に同等です。@OneToOne を省略して数値を使用すると、データストアにFKのない数値列ができます。したがって、JPA は両方を許可しますが、1 つは FK の利点を提供しますが、もう 1 つは関連するコンテキストなしで「数値」を渡すだけです。

于 2012-12-19T19:03:08.353 に答える