2016-03-31 3 views
0

誰かが休止状態の使用方法を知っていましたResultTransformer?エンティティをdtoに変換したいこれは私のコードですAliasToBeanResultTransformerのtransformListメソッドの使用方法は?

Criteria criteria = session.createCriteria(Person.class) 
criteria.add(Restrictions.eq("id",id)); 
PersonDto personDto = criteria.uniqueResult(); 

PersonをPersonDtoにキャストできないというclassCastExceptionがスローされます。

その他の質問: このコードはうまく動作しますが、なぜ上記のコードはありませんか?

Criteria criteria = session.createCriteria(Person.class); 
List<PersonDto> personDtos = criteria.list(); 

答えて

0

あなただけのエンティティは多分あなたはtransformList

Query query = session.createQuery("" 
        + "Select DISTINCT VP.versionId as parent from VersionData VP " 
        + "INNER JOIN VP.zvitId ZP " 
        + "INNER JOIN ZP.childrens CH " 
        + "INNER JOIN CH.versions CP " 
        + "where CP.zvitId.zvitId = :idList and VP.dend IS NULL" 
        ) 
        .setParameter("idList", id) 
        .setResultTransformer(Transformers.aliasToBean(ParentIdList.class)); 
      @SuppressWarnings("unchecked") 
      List<ParentIdList> result = query.list(); 

IdListは、クエリの値を返すのと同じプロパティ名を持つ親を使用してのドーザ http://dozer.sourceforge.net/documentation/usage.html

例のようなツールを使用する必要があります変換したい場合 public class ParentIdList { プライベート文字列親;

/** 
    * @return the parents 
    */ 
    public String getParent() 
    { 
     return parent; 
    } 

    /** 
    * @param parents the parents to set 
    */ 
    public void setParent(String parents) 
    { 
     this.parent = parents; 
    } 
    //getters, setters, hashcode, equals 
} 
関連する問題