2012-06-01 71 views
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; 
    } 

    ,.. 


} 

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

回答

-1

大概是因为

.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); 

应添加到您的查询,但是这已经回答了像这个论坛已经

一千倍