2016-12-27 8 views
0

バージョン:Search 5.5でFieldBridgeを推測できません。インデックス付けされていないフィールド

  • にHibernateコア: 5.2.5.Final
  • 休止-検索: 5.5.5.Final

以下のマッピング持つ:

@Indexed 
@Entity 
@Table(name = "scanresult") 
public class ScanResult 
{ 
    @Id 
    private ScanResultKey id; 

    @Field 
    @Column(name = "name") 
    private String name; 
} 

@Embeddable 
public class ScanResultKey implements Serializable 
{ 
    @ManyToOne 
    @JoinColumn(name = "eA", referencedColumnName = "id") 
    private EntityA entA; 

    //others... 
} 

これまでの記事では、これがSearch 4.4(複合IDと外部関係を持つ場合)、これは5.5で修正する必要があります。それは明らかに私のせいです。

org.hibernate.search.exception.SearchException: HSEARCH000135: Unable to guess FieldBridge for id in entities.keys.ScanResultKey 

注:私は

をインデックス化することが一つのフィールド(name)が必要はあなたが何を指摘してもらえしかし、私は私が間違っ

例外をどのように行うことができますを把握することはできません私は間違っている?

+0

ここでの主な問題は、「FieldBridge」を使う必要がないということです。あなたはこの誤解の原因となったことに指を指すことができますか?私はドキュメントとエラーメッセージを改善しようとしてうれしいです。 – Sanne

+0

@Sanneご返信ありがとうございます。それはドキュメントの問題ではなく、私がもっと愚かであることです。コンポジットキークラスは 'Serializable'であるので、' Hibernate Search'はLuceneインデックスへの書き込み/再作成が可能です。そしてこの解決策が来た後、私は私の仮定が間違っていることを理解しました。しかし、私は専門家ではないので、この考え方は考慮に入れる価値はありません。おかげさまで、Sanne – Eugene

+0

ご協力ありがとうございました!エラーメッセージの明瞭性を改善できるかどうかはまだわかります。 – Sanne

答えて

1

OK、この質問がnoneに近く興味を持っているので、表示回数に応じて、ここで私は問題を解決するために(たぶん)の管理方法は、簡単に、です(あなたがより多く知っていれば、私を修正してください)

  • this SO問題のコメント投稿のいずれかに記載の相溶性

モジュールのバージョンを確認し、すべてではない(でも最新)のバージョンは互いに互換性があります。

休止検索HibernateのORMのバージョン5.0.xおよび5.1.xの(5.2.xではではありません )と5.5作品、およびApache Luceneのと5.3.x、5.4.xおよび5.5.x(未6.0:たとえば、 )

によって次のように述べています。これは、この特定の問題に対する修正がSanne

ではありませんが、他の問題から救うかもしれない

  • のCre TwoWayFieldBridge

    パブリッククラスScanResultBridgeがTwoWayFieldBridge

  • が橋

    @FieldBridge(IMPL = ScanResultBridge.class) プライベートScanResultKeyの実装を指定して、エンティティークラスに注釈を追加実装して実装する複合キーのためのFieldBridgeを食べましたid;

+0

あなたの解決策は間違いありません。あなたのカスタムFieldBridgeが必要です。 Hibernate ORM '5.2.xを使うにはHibernate Search' 5.7.x'を入手する:http://hibernate.org/search/downloads/ – Sanne

関連する問題