たいのですがオーバーライドするEJB3セッションbeanのメソッドを一般の引数できれば全くないのでしょうか。[定休日]
-
08-06-2019 - |
質問
い、以下のEJB3インタフェース/授業:
public interface Repository<E>
{
public void delete(E entity);
}
public abstract class AbstractRepository<E> implements Repository<E>
{
public void delete(E entity){
//...
}
}
public interface FooRepository<Foo>
{
//other methods
}
@Local(FooRepository.class)
@Stateless
public class FooRepositoryImpl extends
AbstractRepository<Foo> implements FooRepository
{
@Override
public void delete(Foo entity){
//do something before deleting the entity
super.delete(entity);
}
//other methods
}
その他の豆にアクセスする FooRepository
bean:
//...
@EJB
private FooRepository fooRepository;
public void someMethod(Foo foo)
{
fooRepository.delete(foo);
}
//...
しかし、値がなされたときに実行され削除の方法 FooRepository
beanが呼び出されます。代わりに、実施の削除方法は定義されている AbstractRepository
が実行されます。
何してるわけではありませんので間違っているのか、あるいは単に制限のJava/EJB3ジェネリック医薬品や相続な遊びとは?
解決
んでpojoるようになったようです。があったので修正コードしております。行きたいというニーズがインターフェースプランを選んでネットですが、本当のところはわからないけど。
とん"Foo"はコンクリートタイプがないのでいくつかの試験です。
私が書いた主な試験法です。私はこういう事が決められません!
public static void main(String[] args){
FooRepository fooRepository = new FooRepositoryImpl();
fooRepository.delete(new Foo("Bar"));
}
public class Foo
{
private String value;
public Foo(String inValue){
super();
value = inValue;
}
public String toString(){
return value;
}
}
public interface Repository<E>
{
public void delete(E entity);
}
public interface FooRepository extends Repository<Foo>
{
//other methods
}
public class AbstractRespository<E> implements Repository<E>
{
public void delete(E entity){
System.out.println("Delete-" + entity.toString());
}
}
public class FooRepositoryImpl extends AbstractRespository<Foo> implements FooRepository
{
@Override
public void delete(Foo entity){
//do something before deleting the entity
System.out.println("something before");
super.delete(entity);
}
}
他のヒント
で書いてますが、単体テストに対するFooRepositoryクラス用としてPOJO.場合に動作すというより慣れていない他の理由で機能異なる内容器です。
疑いがないでしょうやすのではデバッグの場合試験としてPOJO.
所属していません StackOverflow