2014-10-20 54 views
0

搜索DEFSpring Roo生成无效查找器?

@RooJpaActiveRecord(finders = {"findIndividualJobsByIndividualAndIndividualJobType"}) 

型号字段

@Enumerated(EnumType.STRING) 
@ElementCollection(targetClass=IndividualJobType.class) 
private List<IndividualJobType> individualJobType; 

小豆正在产生该搜索在那里混合字符串&的StringBuffer

public static TypedQuery<IndividualJob> IndividualJob.findIndividualJobsByIndividualAndIndividualJobType(Individual individual, List<IndividualJobType> individualJobType, String sortFieldName, String sortOrder) { 
    if (individual == null) throw new IllegalArgumentException("The individual argument is required"); 
    if (individualJobType == null) throw new IllegalArgumentException("The individualJobType argument is required"); 
    EntityManager em = IndividualJob.entityManager(); 
    StringBuilder queryBuilder = new StringBuilder("SELECT o FROM IndividualJob AS o WHERE o.individual = :individual AND"); 
    for (int i = 0; i < individualJobType.size(); i++) { 
     if (i > 0) queryBuilder.append(" AND"); 
     queryBuilder.append(" :individualJobType_item").append(i).append(" MEMBER OF o.individualJobType"); 
    } 
    if (fieldNames4OrderClauseFilter.contains(sortFieldName)) { 
     jpaQuery = jpaQuery + " ORDER BY " + sortFieldName; 
     if ("ASC".equalsIgnoreCase(sortOrder) || "DESC".equalsIgnoreCase(sortOrder)) { 
      queryBuilder.append(" " + sortOrder); 
     } 
    } 
    TypedQuery<IndividualJob> q = em.createQuery(queryBuilder.toString(), IndividualJob.class); 
    q.setParameter("individual", individual); 
    int individualJobTypeIndex = 0; 
    for (IndividualJobType _individualjobtype: individualJobType) { 
     q.setParameter("individualJobType_item" + individualJobTypeIndex++, _individualjobtype); 
    } 
    return q; 
} 

其它非枚举ElementCollections正确生成。

任何想法?

回答

1

我想你找到了一个bug。你能在https://jira.spring.io/browse/ROO/上报告吗? (谢谢!)

在另一方面,解决方法可能是推挤的.java方法和手工修复 代码(这是袋鼠的一大点,你是不是链接到它生成的代码;-))

祝你好运!

+0

https://jira.spring.io/browse/ROO-3545谢谢 – 2014-10-21 14:18:48