エンティティからの必要なフィールドのみをロードする制限を追加するにはどうすればよいですか? CustomerUser OneToOneマッピングを持ち、OneToOneマッピングとしてUserを持つTransactionテーブルを持つMy Userテーブル トランザクションをロードすると、ユーザーとそれぞれの顧客が読み込まれますが、パスワードとcustomeruserテーブルからその他のファイルをロードしたくありません。 (Hibernateのバージョン4.2.6)Hibernate-フィールド遅延読み込み
答えて
あなたは
@Basic(fetch = FetchType.LAZY)
しかし、それはあなたのフィールド上で動作するためにあなたが休止状態バイトコードエンハンサー(some back story)
<plugin>
<groupId>org.hibernate.orm.tooling</groupId>
<artifactId>hibernate-enhance-maven-plugin</artifactId>
<version>${hibernate.version}</version>
<executions>
<execution>
<configuration>
<failOnError>true</failOnError>
<enableLazyInitialization>true</enableLazyInitialization>
<enableDirtyTracking>true</enableDirtyTracking>
</configuration>
<phase>compile</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
別を有効にする必要があることを行うことができ2つのエンティティを同じテーブルにマップすることです。 CustomerUserのように、常にロードされるすべてのフィールドをマップすることができますが、CustomerPasswordはIDとパスワードだけを持ちます。次に、サービス/リポジトリからパスワードエンティティを必要とするときにのみ、パスワードエンティティをロードします。
これは、遅延プロパティチケットを修正する前の一般的な回避策でした。 3年のようになりました:P。
今私のプロジェクトはとても広大になり、私のpojoデザインに触れることもできません。 CustomerUserは非常に多くの機能で使用されています。 –
あなたの提案は涼しい –
私が知る限り、Hibernateには他の方法はありません。 – hakamairi
あなたがする必要があるのは、Jsonアノテーションとフェッチタイプを記述することです。 は、例えば:
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE)
@JsonIgnore
private CustomerUser customerUser;
FetchType.LAZY
自動的にクラスをロードしません。 @JsonIgnore
はクラスをjsonにブロックします。
あるいは、
パスワードを除くすべての変数をCustomerUserをロードしたいとしましょう。あなたがする必要があるのは、パスワード変数に@JsonIgnore
を追加することです。
public class User {
....
@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.REMOVE)
@JsonManagedReference
private CustomerUser customerUser;
....
}
public class CustomerUser {
@Column(name = "username")
private String username;
@Column(name = "password")
@JsonIgnore
private String password;
......
...getters/setters
}
- 1. Autofac遅延読み込み
- 2. gwt遅延読み込み
- 3. 遅延読み込みライブラリ?
- 4. Hibernate遅延読み込み、プロキシーおよび継承
- 5. レイアウトの読み込み遅延
- 6. Entity Framework遅延読み込み
- 7. C#の遅延読み込み?
- 8. 遅延読み込みエラー画像
- 9. 遅延読み込みandroid ExpandableListView
- 10. 遅延読み込みInfragistics Ultragrid
- 11. RecyclerView遅延読み込みTextViewコンテンツ
- 12. boolで遅延読み込み
- 13. AutomapperとNHibernateの遅延読み込み
- 14. Sonata Adminの遅延読み込み
- 15. 非同期遅延読み込みタスク
- 16. ソーシャルボタンの遅延読み込み
- 17. Javascriptのテキストファイルの読み込み遅延
- 18. エンティティフレームワーク.NETでの遅延読み込み
- 19. ロードプロパティの遅延読み込み
- 20. のUITableView - 遅延読み込みコンタクトイメージ
- 21. Vue.js 2.0遅延読み込み
- 22. UScroll遅延読み込みアンロードビュー
- 23. アセンブリ/カタログの遅延読み込み
- 24. 遅延Javascriptの読み込み
- 25. 遅延実行と遅延読み込み
- 26. 読み込み前に遅延読み込みフィールドを変更できますか?
- 27. Hibernateで同じエンティティの遅延読み込みオブジェクトを比較するには?
- 28. 非遅延としてマップされたアソシエーションを遅延読み込み
- 29. 遅延読み込みでICollectionプロパティが読み込まれない
- 30. 遅延書き込みエラー
jsonでトランザクションをロードしていますか? –
はい、私はjsonデータを取得しています –