我有一个持有我的业务逻辑的slsb,如何使用泛型将以下三种方法更改为一种泛型方法?前两个是相同的数据库,第三个是不同的数据库。这些方法是否还需要与交易有关的进一步注释?
@PersistenceContext(unitName = "db")
private EntityManager myEntityManager;
@PersistenceContext(unitName = "db2")
private EntityManager myDB2EntityManager;
@TransactionAttribute(TransactionAttribute.Required)
public void crud(MyEntity myEntity) throws MyException {
myEntityManager.merge(myEntity);
}
public void crud(ADifferentEntity aDifferentEntity) throws MyException {
myEntityManager.merge(aDifferentEntity);
}
public void crud(DB2Entity db2Entity) throws MyException {
myDB2EntityManager.merge(db2Entity);
}
提前谢谢了。
干杯!
最佳答案
不知道我是否完全理解这个问题,但是:
由于您在那里有两个不同的实体管理器和两个不同的数据库(假设您没有将相同的数据同时保存到两个数据库中,而您似乎并没有将它们重复存储),所以我认为使用两种不同的方法是合理的在您的界面中。 (为避免混淆,我会用不同的名称命名。)
要合并前两个,如何使用公共接口或继承的抽象基类并将参数类型更改为该公共类型?