使用Spring Data JPA管理的ID类型,Spring AOP无法正常工作

时间:2014-07-22 00:47:07

标签: spring spring-data spring-aop spring-3

我有以下实体

@Entity
@Table(name="user_app")
public class User implements Serializable {

    private static final long serialVersionUID = 4992188185008895307L;

    private String id;
    ...

    public User(){

    }

    @Id
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }

Id的类型为字符串

我正在使用Spring Data JPA,我有以下内容:

public interface UserRepository extends JpaRepository<User, String> {

}

我正在与AOP合作,我有以下内容:

@Before("execution(* *..UserRepository.findOne(..))")
public void beforeRepositoryLogging(JoinPoint jointPoint){
    logger.info(">>Before {} called", jointPoint.getSignature().getName());
}

工作正常。

但如果我改变:

  • @Before(&#34; execution(* * .. UserRepository.findOne(..))&#34;)

  • @Before(&#34; execution(* * .. UserRepository.findOne(String))&#34;)

它不再起作用了。为什么呢?

直到这里根据API:

JpaRepository

  

Interface JpaRepository<T,ID extends Serializable>

根据API的ID

Repository

  

ID - the type of the id of the entity the repository manages

记住:

我的存储库有JpaRepository<User, String> ID 因此字符串 并且 findOne 方法签名为T findOne(ID id)。如何结合,我的ID类型是String。

因此缺少什么?

提前致谢。

0 个答案:

没有答案