2013-03-13 53 views
1

我使用Spring ROO,我成功地生成了发现者。 问题是,每个属性都在自己的菜单中,我想要以一种形式生成自定义查找器。春季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文件生成它的方法是什么?

感谢

回答

3

如果我理解正确的话,你想一个新的方法添加到与您entitiy,这是由Spring Roo的产生AspectJ的IDT文件。

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

您可以在Spring Roo reference documentation以及recommended practices有更多关于它是如何工作的信息。

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