タグ付けされた質問 「one-to-one」

9
JPA OneToOne関係を遅延させるにはどうすればよいですか
私たちが開発しているこのアプリケーションでは、ビューが特に遅いことに気づきました。ビューのプロファイルを作成したところ、データベースにフェッチするオブジェクトが2つしかない場合でも、hibernateによって1つのクエリが実行され、10秒かかったことがわかりました。すべてOneToManyとManyToMany関係は怠惰だったので、それは問題ではありませんでした。実行中の実際のSQLを調べたところ、クエリに80を超える結合があることに気付きました。 さらに問題を調査したところ、問題はエンティティクラスの深い階層OneToOneとManyToOneエンティティクラス間の関係が原因であることがわかりました。したがって、私はそれらを遅延フェッチするだけで問題を解決できると思いました。しかし、注釈を付けるか@OneToOne(fetch=FetchType.LAZY)、@ManyToOne(fetch=FetchType.LAZY)機能しないようです。例外が発生するか、実際にはプロキシオブジェクトに置き換えられないため、遅延が発生します。 これを機能させる方法はありますか?persistence.xml関係や構成の詳細を定義するためにを使用していないことに注意してください。すべてはJavaコードで行われます。

26
データベースの1対1の関係を使用することが理にかなっている時期はありますか?
先日、正規化について考えていましたが、データベースに1対1の関係があるはずがないと思いました。 Name:SSN?同じテーブルに入れます。 PersonID:AddressID?繰り返しますが、同じテーブルです。 1対多または多対多の適切な中間テーブルを使用して、膨大な数の例を思い付くことができますが、1対1になることはありません。 私は何か明白なものを見逃していますか?

8
DjangoでOneToOneFieldがNoneかどうかを確認します
私はこのような2つのモデルを持っています: class Type1Profile(models.Model): user = models.OneToOneField(User, unique=True) ... class Type2Profile(models.Model): user = models.OneToOneField(User, unique=True) ... ユーザーがType1またはType2プロファイルを持っている場合は、何かをする必要があります。 if request.user.type1profile != None: # do something elif request.user.type2profile != None: # do something else else: # do something else ただし、type1またはtype2プロファイルを持たないユーザーの場合、そのようなコードを実行すると、次のエラーが発生します。 Type1Profile matching query does not exist. ユーザーが持っているプロファイルのタイプを確認するにはどうすればよいですか? ありがとう
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.