2012-03-20 19 views
2

spring rooプロジェクトでfile .ajのメソッドを呼び出す方法は?Spring Rooプロジェクトでファイル.ajのメソッドを呼び出す方法は?

Employee.javaのメソッドcallMethod()からEmployee_Roo_Jpa_ActiveRecord.ajのメソッド "Employee.findAllEmployees()"を呼び出す方法は?

ファイル:Employee.java

1 package com.tap.domain; 
    2 
    3 import java.text.SimpleDateFormat; 
    4 import java.util.ArrayList; 
    5 import java.util.Calendar; 
    6 
    7 import javax.validation.constraints.Max; 
    8 import javax.validation.constraints.Min; 
    9 
10 import org.aspectj.lang.annotation.Aspect; 
11 import org.springframework.beans.factory.annotation.Value; 
12 import org.springframework.roo.addon.javabean.RooJavaBean; 
13 import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord; 
14 import org.springframework.roo.addon.tostring.RooToString; 
15 import org.springframework.stereotype.Component; 
16 
17 @RooJavaBean 
18 @RooToString 
19 @RooJpaActiveRecord 
20 @Component("employee") 
21 public class Employee { 
22 
23  private long id; 
24 
25  private String name; 
26 public void callMethod() { 
... 
... 
30 } 

ファイル:Employee_Roo_Jpa_ActiveRecord.aj

6 import java.util.List; 
    7 import javax.persistence.EntityManager; 
    8 import javax.persistence.PersistenceContext; 
    9 import org.springframework.transaction.annotation.Transactional; 
10 import com.tap.domain.Employee; 
11 
12 privileged aspect Employee_Roo_Jpa_ActiveRecord { 
13 
14  @PersistenceContext 
15  transient EntityManager Employee.entityManager; 
... 
27  public static List<Employee> Employee.findAllEmployees() { 
28   return entityManager().createQuery("SELECT o FROM Employee o", Emplo yee.class).getResultList(); 
29  } 
... 

答えて

3

ルーが使用するメカニズムは、AspectJののinter-type declarationです。基本的には

:あなたの従業員クラスは、実行時に findAllEmployees()メソッドを持つことになりますので、あなたはそれを呼び出すことができます。

public void callMethod() { 
    List<Employee> allEmployees = findAllEmployees(); 
    // now do something with the employees 
} 
関連する問題