Java 如何创建通用EJB类

Java 如何创建通用EJB类,java,ejb,ejb-3.0,Java,Ejb,Ejb 3.0,我有两个实体:地址和客户。 我有一个界面,看起来像: public interface IDAOEnitityFactory extends Serializable{ List<Address> findAllByClass(); } @Stateless @Local(IDAOEnitityFactory.class) public class DAOEnitityFactory implements IDAOEnitityFactory { @PersistenceCon

我有两个实体:地址和客户。 我有一个界面,看起来像:

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();
}

我想我找到了一个解决办法:

public interface IDAOEnitityFactory extends Serializable{
T List<T> findAllByClass(Class c);
 }
也许还有其他解决办法。母鸡

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);               
        }