-1

次の例外が発生しています

org.springframework.orm.hibernate3.HibernateQueryException: unexpected
char: '{'

 hibernateTemplate.find("select new com.XXX.application.modules.service.vo.ServiceRuleVO( A.id, A.serviceTypeId,  A.petLocationId, A.startDate,  A.endDate,  A.status, A.recurFrequency, A.recurCount,  A.recurInterval,  A.recurByDays, A.recurByMonths,  A.recurByMonthDay,  A.billable, A.modifiedBy,  A.modifiedTime, {B} ) from ServiceRule as A left join ServicePet as C on C.serviceRuleId=A.id left join Pet as B on B.id=C.petId order by FROM_UNIXTIME(A.startDate) desc");

VO クラス内のコンストラクター

public ServiceRuleVO(int id, int serviceTypeId, int petLocationId,
        int startDate, int endDate, int status, String recurFrequency,
        int recurCount, int recurInterval, String recurByDays,
        String recurByMonths, int recurByMonthDay, int billable,
        int modifiedBy, int modifiedTime, List<Pet> petList) {

    super();
    this.id = id;
    this.serviceTypeId = serviceTypeId;
    this.petLocationId = petLocationId;
    this.startDate = startDate;
    this.endDate = endDate;
    this.status = status;
    this.recurFrequency = recurFrequency;
    this.recurCount = recurCount;
    this.recurInterval = recurInterval;
    this.recurByDays = recurByDays;
    this.recurByMonths = recurByMonths;
    this.recurByMonthDay = recurByMonthDay;
    this.billable = billable;
    this.modifiedBy = modifiedBy;
    this.modifiedTime = modifiedTime;
    this.petList = petList;
}

hibernateTemplate を使用して VO クラスにデータを設定するにはどうすればよいですか

4

1 に答える 1

0

そのようなクエリでリストを指定することはできません。HibernateQuery には setParameterList(String, Object[]) メソッドがあります。それはあなたが探していることをするかもしれません。API ドキュメントを確認してください: http://docs.jboss.org/hibernate/orm/3.2/api/org/hibernate/Query.html

編集:

彼は、List パラメーターを受け取る (より単純な) クエリを作成する例です。うまくいけば、これはあなたのものを変更する際にあなたを導くことができます:

Query query = session.createQuery("from Employee e join e.skillGroups as s where s in (:skillGroups)");
// skillGroups must be a Collection type
query.setParameterList("skillGroups", skillGroups);
query.setParameter("skillGroupsLength", skillGroups.length);
List list = query.list();
于 2013-09-10T13:52:32.123 に答える