在hibernate中,是否可以在构造函数中持久保存对象?

时间:2011-07-21 18:44:55

标签: java hibernate orm jpa constructor

因此,我通常持久化对象的方式是调用entityManager.persist(object)。有没有办法在自己的构造函数中持久化对象,所以我不必创建一堆工厂类?

同样,有没有办法使用实例方法删除对象?

这些事情中的任何一个都是好主意,还是我应该使用外部类来做这些事情?

2 个答案:

答案 0 :(得分:2)

这不是一个好主意,因为Hibernate在实例化对象的实例以从查询返回给你时需要调用对象的构造函数。

在简洁的设计中,您的实体对象/域模型层根本不会知道持久层。

答案 1 :(得分:0)

在构造实体之前,你的EntityManager必须被注入到实体中,这只能使用AspectJ weaving或静态初始化器,这将是一种可怕的方法。

如果您的意思是使用实体的实例方法删除,那么您可以再次假设EntityManager以某种方式可用于该方法。

一般来说,实体不会在实例创建时持久化,但另一个实体不一定是非典型的。