【问题标题】:Spring Roo generating invalid finder?Spring Roo 生成无效查找器?
【发布时间】: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


    【解决方案1】:

    我认为你发现了一个错误。你能在https://jira.spring.io/browse/ROO/ 上报告吗? (谢谢!!)

    另一方面,解决方法可能是 push-in .java 中的方法并修复 手工编写代码(这是 Roo 的一大优点,您不会被它生成的代码所束缚;-))

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      相关资源
      最近更新 更多