1

この HQL クエリを MySQL ddbb に送信すると

public List<EscaleCatalogueKaravel> obtenirListeEscalesCroisiereAvecIdCroisiereKaravel(Integer idCroisiereKaravel, Integer refLangue) {
         List<EscaleCatalogueKaravel> listeEscales = entityManager.createQuery("select p from EscaleCatalogueKaravel p " +
                    "where p.idCroisiereComplete=:idCroisiereComplete and p.refLangue=:refLangue")
                    .setParameter("idCroisiereComplete", idCroisiereKaravel)
                    .setParameter("refLangue", refLangue)
                    .getResultList();

         return listeEscales;
    }

結果はすべて同じですが、正しい数の結果が得られました。ただし、ddbb を手動でクエリすると (ログに表示されるクエリ)、結果セットは正しくなります。

また、エンティティのフィールド名を「p」に置き換えると、結果は正しいです (ただし、結果セットにはプロパティ名はなく、インデックスだけです)。

これは私のエンティティです

@Entity
@Table(name="view_croisiereitineraire")
public class EscaleCatalogueKaravel implements Serializable {

    @Id
    @Column(name="idCroisiereComplete")
    private Integer idCroisiereComplete;

    @Column(name="idEscale")
    private Integer idEscale;

    @Column(name="nomEscale")
    private String nomEscale;

    @Column(name="refMarche")
    private Integer refMarche;

    @Column(name="refLangue")
    private Integer refLangue;



    public Integer getIdCroisiereComplete() {
        return idCroisiereComplete;
    }

    ,..


}

私は他のエンティティとまったく同じことをしており、すべて正常に動作しています。アイデア?

4

1 に答える 1

-1

おそらく

.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

クエリに追加する必要がありますが、これはこのフォーラムですでに何千回も回答されています

于 2012-06-01T11:50:19.057 に答える