1

次のように TypeCmplt からすべてのデータを抽出したい:

    public List<TypeCmplt> listerrTypeCmplt()
throws DaoException {
    Query query = cmpltTitreEM.createQuery("select t.cdTypeCmplt, t.lbTypeCmplt from TypeCmplt t");
    List<TypeCmplt> listeType = new ArrayList<TypeCmplt>();
    listeType = query.getResultList();
    return listeType;
}

試験方法:

    @Test
public void listerComplementsParTypeTest(){
    logger.debug("Afficher la liste des types de complémént") ;

    try {
        List<TypeCmplt> type = cmpltTitreDao.listerrTypeCmplt();
        for (int i = 0; i < type.size(); i++) {
            System.out.println(type.get(i));
        }

    } catch (DaoException e) {
        logger.error("Erreur", e) ;
    }

しかし、私はこれを取得します:

Hibernate: select typecmplt0_.CD_TYPE_CMPLT as col_0_0_, typecmplt0_.LB_TYPE_CMPLT as col_1_0_ from TC_TYPE_CMPLT typecmplt0_
[Ljava.lang.Object;@4d2b11
[Ljava.lang.Object;@46a5c4
[Ljava.lang.Object;@2d09e0
[Ljava.lang.Object;@e38fca

誰でも助けてくれませんか?

4

2 に答える 2

1

結果の を作成しList<TypeCmplt>ています。Objectただし、射影クエリを作成しているため、結果リストはの配列ですTypeCmplt。. TypeCmpltエンティティを適切に取得する場合は、クエリ文字列を次のように変更します。

"select t from TypeCmplt t"

エンティティのいくつかの属性を抽出したいが、タイプセーフな方法でそれを行う場合は、コンストラクター式が最適です。

List<MyClass> dtos = cmpltTitreEM.createQuery("SELECT NEW com.example.MyClass( t.cdTypeCmplt, t.lbTypeCmplt) FROM TypeCmplt t").getResultList();
于 2013-04-24T08:42:35.890 に答える
1

Object呼び出された を印刷しようとしていますTypeCmplt。に電話してみてくださいtoString()。@kostja が言ったように、おそらく でオーバーライドtoString()したほうがよいでしょうTypeCmplt

このような:

System.out.println(type.get(i).toString());

または:

TypeCmplt t = type.get(i);
System.out.println(t.getLong() + ": " + t.getString());

この場合、それに応じて を交換する必要がgetLong()ありますgetString()

于 2013-04-24T08:31:33.863 に答える