这个问题曾经在这里被问到过简单CRUD的EJB 3会话Bean设计,我只想更深入地询问有关此设计的问题.我已经尝试在原帖上提问,但是,我没有看到任何回复,所以我决定创建新帖子.因此,实现通用CRUD会话bean的Pascal解决方案如下
public interface GenericCrudService {
public <T> T create(T t);
public <T> T find(Class<T> type, Object id);
public <T> void delete(T t);
public <T> T update(T t);
public List findWithNamedQuery(String queryName);
public List findWithNamedQuery(String queryName, int resultLimit);
public List findWithNamedQuery(String namedQueryName,
Map<String, Object> parameters);
public List findWithNamedQuery(String namedQueryName,
Map<String, Object> parameters,
int resultLimit);
public <T> List<T> findWithNativeQuery(String sql, Class<T> type);
}
Run Code Online (Sandbox Code Playgroud)
和
@Stateless
@Remote(GenericCrudService.class)
@TransactionAttribute(TransactionAttributeType.MANDATORY)
public class GenericCrudServiceBean implements GenericCrudService {
@PersistenceContext
private EntityManager em;
@Override
public …Run Code Online (Sandbox Code Playgroud)