2015-02-09 4 views
1

У меня есть объекты буксировки: Адрес и Клиент. У меня есть интерфейс ведьма выглядит следующим образом:Как создать общий класс EJB

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 возвращения на них , Как я могу это сделать?

У меня есть фасоль:

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

ответ

0

Я думаю, что я нашел решение:

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

Возможно, есть и другие решения s. курица?

Смежные вопросы