【发布时间】:2014-10-20 18:33:54
【问题描述】:
查找器定义
@RooJpaActiveRecord(finders = {"findIndividualJobsByIndividualAndIndividualJobType"})
模型字段
@Enumerated(EnumType.STRING)
@ElementCollection(targetClass=IndividualJobType.class)
private List<IndividualJobType> individualJobType;
Roo 正在生成这个 Finder,它混合了 String 和 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 正确生成。
有什么想法吗?
【问题讨论】:
标签: spring-roo