1

実在物

@javax.persistence.Entity
@javax.persistence.Table(name = "entidade")
public class Entidade {
    private static final long serialVersionUID = -6831078183847196839L;
    @EmbeddedId
    @AttributeOverrides({
            @AttributeOverride(name = "id_titulo", column = @Column(name = "titulo_id", nullable = false)),
            @AttributeOverride(name = "id_empresa", column = @Column(name = "empresa_id", nullable = false)) })
    private PK pk;
//getter//setter
}

//PK

@Embeddable
public class PK implements Serializable {
    private static final long serialVersionUID = -5441836698300495848L;

    @javax.persistence.Column(name = "id_titulo")
    private Long titulo_id;

    @javax.persistence.Column(name = "id_empresa")
    private Long empresa_id;

        //getter // setter
}

クエリは OK です: インスタンス pk セッターの場合

  Criteria criteria = novoCriteria();
    criteria.createAlias("id", "id");
    TituloPK pk = new TituloPK();
    pk.setEmpresa(2L);
    pk.setTitulo(6364L);
    criteria.add(Restrictions.eq("id", pk));
    criteria.list();

クエリ エラー

   Criteria criteria = novoCriteria();
    criteria.createAlias("id", "id");
    criteria.add(Restrictions.eq("id.id_empresa", 2L));
    criteria.list();

コンソールのエラー: *プロパティを解決できませんでした: id_empresa of: Entidade*

会社で検索するだけでよく、制約を使用すると上記のエラーが返されます。

4

1 に答える 1