1

我使用 Spring ROO ,我成功生成了查找器。问题是每个属性都在自己的菜单中,我想以一种形式生成自定义查找器。

我首先在我的实体中添加一个方法,这里是方法

  public static TypedQuery<com.keyrus.outside.business.entity.Candidate> findCandidatesByCustomDataLike(String principalSkills, String university) {
    if (principalSkills != null) {
        principalSkills = principalSkills.replace('*', '%');
        if (principalSkills.charAt(0) != '%') {
            principalSkills = "%" + principalSkills;
        }
        if (principalSkills.charAt(principalSkills.length() - 1) != '%') {
            principalSkills = principalSkills + "%";
        }
    }
    if (university != null) {
        university = university.replace('*', '%');
        if (university.charAt(0) != '%') {
            university = "%" + university;
        }
        if (university.charAt(university.length() - 1) != '%') {
            university = university + "%";
        }
    }
    EntityManager em = Candidate.entityManager();
    TypedQuery<Candidate> q = em.createQuery("SELECT o FROM Candidate AS o WHERE LOWER(o.principalSkills) LIKE LOWER(:principalSkills)" + 
    " AND LOWER(o.university) LIKE LOWER(:university)", Candidate.class);
    q.setParameter("principalSkills", principalSkills);
    q.setParameter("university", university);
    return q;
}

如何在 *.aj 文件中生成它?

谢谢

4

1 回答 1

3

如果我理解正确,您想向与您的实体相关的 AspectJ IDT 文件添加一个新方法,该文件由 Spring Roo 生成。

如果是这种情况,我建议您将更改保留在实体 .java 文件中。这就是 Spring Roo 的工作方式,它在 .aj 文件中生成代码,而您在 .java 文件中编写自己的代码。如果您修改 .aj 文件,它将被 Roo 覆盖。

您可以在Spring Roo 参考文档以及推荐的实践中获得有关其工作原理的更多信息。

如果您想要添加一个可以合并到任何实体中的新功能,您可以开发自己的 Roo 插件,然后生成自己的 .aj 文件,添加您需要的新方法。

于 2014-08-29T06:57:08.420 回答