继上一个问题DAO和Service层(JPA / Hibernate +
Spring)之后
,我决定在使用JPA /
Hibernate,Spring和Wicket的应用程序中(至少在开始时)仅对我的数据层使用一个DAO。提出了使用通用CRUD方法的方法,但是我不太确定如何使用JPA来实现。您能否举个例子或分享有关此的链接?
这是一个示例界面:
public interface GenericDao<T, PK extends Serializable> {
T create(T t);
T read(PK id);
T update(T t);
void delete(T t);
}
和一个实现:
public class GenericDaoJpaImpl<T, PK extends Serializable>
implements GenericDao<T, PK> {
protected Class<T> entityClass;
@PersistenceContext
protected EntityManager entityManager;
public GenericDaoJpaImpl() {
ParameterizedType genericSuperclass = (ParameterizedType) getClass()
.getGenericSuperclass();
this.entityClass = (Class<T>) genericSuperclass
.getActualTypeArguments()[0];
}
@Override
public T create(T t) {
this.entityManager.persist(t);
return t;
}
@Override
public T read(PK id) {
return this.entityManager.find(entityClass, id);
}
@Override
public T update(T t) {
return this.entityManager.merge(t);
}
@Override
public void delete(T t) {
t = this.entityManager.merge(t);
this.entityManager.remove(t);
}
}
问题内容: 我的web应用程序已经得到了很多服务表/实体,如,,,等。 每次添加新实体时,都必须编写一个DAO。问题是,它们基本上是相同的,但是唯一的区别是 实体类本身 。 我知道Hibernate工具可以为我自动生成代码,但是我现在不能使用它们(不要问为什么),所以我想到了 Generic DAO 。关于这方面有很多文献,但我无法整理并使其与Spring一起使用。 我认为这全都是关于泛型的,它将
Xml配置: 如果这两个方法中的任何一个(updateSelfAccount,updateAnotherAcccount)失败,则整个事务都应该回滚。但是它不能回滚给定的异常,即使我不确定这一切都发生在一个事务中。请指正。
问题内容: 我的web应用程序已经得到了很多服务表/实体,如,等。 每次添加新实体时,都必须编写一个DAO。问题是,它们基本上是相同的,但是唯一的区别是实体类本身。 我知道Hibernate工具可以为我自动生成代码,但是我现在不能使用它们(不要问为什么),所以我想到了Generic DAO。关于这方面有很多文献,但我无法整理并使其与Spring一起使用。 我认为这全都是关于泛型的,它将有四种基本方
spring-boot2-jpa-crud-example spring boot2 jpa crud REST APIs example Below is the step by step article which explained this Spring boot 2 JPA CRUD Restful apis example : http://www.javaguides.net/201
问题内容: 我的web应用程序已经得到了很多服务表/实体,如,,,等。 每次添加新实体时,都必须编写一个DAO。问题是,它们基本上是相同的,但是唯一的区别是 实体类本身 。 我知道Hibernate工具可以自动为我生成代码,但是我现在不能使用它们(不要问为什么),所以我想到了 Generic DAO 。关于这方面有很多文献,但我无法整理并使其与Spring一起使用。 我认为这全都是关于泛型的,它将
有可能将两个DAO组合成一个服务方法吗? 我想创建一个泛型方法,它将根据输入参数选择正确的DAO。现在我想出的是从服务对象外部接受Dao的方法。但这需要在控制器中初始化适当的Dao,这有点难看...