当存在@EmbeddedId 字段时,应实现自定义字段桥。有一个关于它的功能打开https://hibernate.atlassian.net/browse/HSEARCH-1879。但它还没有准备好。
在这种情况下,正确实现的接口是TwoWayFieldBridge?
下面是我对具有 5 个字段的复合 ID 的实现。
public class ChavePrimariaAcompanhamentoBridge implements TwoWayFieldBridge {
@Override
public void set(String name, Object value, Document document, LuceneOptions luceneOptions) {
AcompanhamentoPK chavePrimaria = (AcompanhamentoPK) value;
Integer ano = chavePrimaria.getAno();
Integer mes = chavePrimaria.getMes();
Long codigoCredenciada = chavePrimaria.getCredenciada().getCodigo();
Long codigoPosto = chavePrimaria.getPostoAtendimento().getCodigo();
Integer numeroSequencial = chavePrimaria.getNumeroSequencial();
luceneOptions.addNumericFieldToDocument("mes", mes, document);
luceneOptions.addNumericFieldToDocument("ano", ano, document);
luceneOptions.addNumericFieldToDocument("credenciada.codigo", codigoCredenciada, document);
luceneOptions.addNumericFieldToDocument("postoAtendimento.codigo", codigoPosto, document);
luceneOptions.addNumericFieldToDocument("numeroSequencial", numeroSequencial, document);
}
@Override
public Object get(String name, Document document) {
AcompanhamentoPK …Run Code Online (Sandbox Code Playgroud)