2013-03-13 52 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文件,添加你需要的新方法。