当前位置:  开发笔记 > 编程语言 > 正文

如何使用泛型参数覆盖EJB 3会话bean方法 - 如果可能的话?

如何解决《如何使用泛型参数覆盖EJB3会话bean方法-如果可能的话?》经验,为你挑选了0个好方法。

假设您有以下EJB 3接口/类:

public interface Repository
{
   public void delete(E entity);
}

public abstract class AbstractRepository  implements Repository
{
   public void delete(E entity){
      //...
   }
}

public interface FooRepository
{
   //other methods
}

@Local(FooRepository.class)
@Stateless
public class FooRepositoryImpl extends
    AbstractRepository implements FooRepository
{
   @Override
   public void delete(Foo entity){
      //do something before deleting the entity
      super.delete(entity);
   }
   //other methods
}

然后另一个访问FooRepositorybean的bean:

//...
@EJB
private FooRepository fooRepository;

public void someMethod(Foo foo)
{
    fooRepository.delete(foo);
}
//...

但是,当FooRepository调用bean 的delete方法时,永远不会执行重写方法.相反,只执行定义的delete方法的实现AbstractRepository.

我做错了什么,或者只是Java/EJB 3的限制,泛型和继承不能很好地协同工作呢?

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有