EntityManager.getResultList()中的重复结果

时间:2012-06-01 08:13:03

标签: java hibernate persistence hql

当我将此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;
    }

    ,..


}

我和其他实体完全一样,一切正常。想法?

1 个答案:

答案 0 :(得分:-1)

可能是因为

.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

应该添加到您的查询中,但已经在此论坛上已经回答了一千次