あなたが言及するこの「論理」は、他のエンティティにアクセスすると仮定します。これらのエンティティがisWarning
メソッドを持つエンティティに含まれていることをHibernate Searchに伝える必要があります。
isWarning
メソッドがMainEntity
というエンティティで定義され、SomeOtherEntity
という別のエンティティからデータにアクセスしたとします。
SomeOtherEntity
で
、あなたは協会の裏側になります:ちょうど@ContainedInを追加し、良いことがあり
public class SomeOtherEntity {
@ManyToOne // Or @OneToOne, or whatever
private MainEntity mainEntity;
}
を:残念ながら、これは持つことができる、ということ
public class SomeOtherEntity {
@ManyToOne // Or @OneToOne, or whatever
@ContainedIn
private MainEntity mainEntity;
}
注意SomeOtherEntity
が頻繁に更新される場合のパフォーマンス面での重要な影響:Hibernate Searchは正確にはを認識しません。部分のSomeOtherEntity
はで使用されます従って、SomeOtherEntity
の変化がisWarning
の結果に影響を与えない場合であっても、SomeOtherEntity
が変化するたびに再索引付けされる。 A ticket has been filed to address this issueですが、依然として保留中です。
私たちはこのソリューションを試しましたが、これまでのところうまくいきません:)、唯一の方法は動作しますが、使用したくありません。セーブした後、再びhibernateにobjを再索引付けさせることです。 –
私は何度もそれを使用しており、それは働いたので、調査したいかもしれません。どのバージョンのHibernate Searchを使用していますか?たぶんあなたはhttps://hibernate.atlassian.net/browse/HSEARCH-2868の影響を受けていますか? –