java - 如何创建通用 EJB 类

标签 java ejb ejb-3.0

我有两个名为:地址和客户端的实体。 我有一个看起来像这样的界面:

public interface IDAOEnitityFactory extends Serializable{
List<Address> findAllByClass();
}

实现如下:

 @Stateless
@Local(IDAOEnitityFactory.class)
 public class DAOEnitityFactory implements IDAOEnitityFactory {
@PersistenceContext(unitName = "MY_PU")
protected EntityManager entityManager;

@Override
public List<Address> findAllByClass() {     
    return this.getAuditReader().createQuery()
            .forRevisionsOfEntity(Address.class, true, false)
            .setMaxResults(10).getResultList();
}

所以我想做一个通用的实现,我只传递地址或客户端并 findAllByClass 返回它们。 我怎样才能做到这一点?

我有一颗 bean :

@EJB
private IDAOEnitityFactory dao;
for(Address st:dao.findAllByClass()){
                System.out.println(st.getID);               
            }

最佳答案

我认为我找到了解决方案:

public interface IDAOEnitityFactory extends Serializable{
T List<T> findAllByClass(Class c);
 }
<小时/>
@Stateless
@Local(IDAOEnitityFactory.class)
public class DAOEnitityFactory implements IDAOEnitityFactory {
@PersistenceContext(unitName = "MY_PU")
protected EntityManager entityManager;
@Override
public List<T> findAllByClass(Class c) {     
return this.getAuditReader().createQuery()
        .forRevisionsOfEntity(c, true, false)
        .setMaxResults(10).getResultList();
 }
<小时/>
@EJB
private IDAOEnitityFactory dao;
for(Object st:dao.findAllByClass(Address.class)){
            System.out.println((Address)st)st.getID);               
        }

也许还有其他解决方案。母鸡?

关于java - 如何创建通用 EJB 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28416185/

相关文章:

jboss - 从另一个客户端访问部署在 JBoss 7.0.1 中的 ejb

java - EJB 3.x onMessage() 与@Timeout 事务上下文

weblogic - Weblogic下不清楚EJB bean JNDI名称

java - 具有动态 fragment 的 Android 项目在模拟器上崩溃?

java - 如何强制TopLink立即建立OneToMany关系?

java - 无法将 EJB 模块部署到 Glassfish

java - 在 OpenEJB 中部署具有多个队列名称的 MDB 时出错

java - 如何使用 openNLP 将以下标记化文本与数据库列值进行比较?

java - netty的addLast中,哪个EventExecutorGroup是对的

java - 如何清理和打印\d{3}\d{3}\d{2}\d{2}格式的数字