0

所以,这就是我想做的。有些像这样我已经能够在 openerp 中找到。

我想,我可以简单地声明一个 bean,它也是一个 JPA 持久实体,例如:

例子.java:

package my.project;

@Configurable
@Entity
public class Example {
    String a;
    String b;
...
}

当然,这个类已经包含了 JPA 持久性注入,因此它可以从 java 代码中作为一个普通的 JPA 支持的持久性类来处理。我的目标是从 Spring 声明它的一些实例applicationContext.xml

应用程序上下文.xml:

<bean class="my.project.Example">
    <property name="a" value="test_a"/>
    <property name="b" value="test_b"/>
</bean>

我认为这真的很有趣:

  1. 必须从 Spring 初始化中调用新创建实例的persist()方法,但前提是它在 DB 中不存在。
  2. 如果存在,则应从持久 JPA 存储中加载该实例。

有可能吗?该任务是否有示例代码?:-)

4

2 回答 2

1

您是否考虑过使用工厂方法?您可以在里面插入实体管理器并在里面调用查找/保存。然后,工厂方法将从数据库中返回您的 bean 实例,或者创建一个新实例并将其持久化。对我来说,这将是更好的解决方案,也很容易在测试中模拟。

于 2014-09-29T10:00:00.373 回答
1

不,没有针对此的通用解决方案。您可以做的只是在部署时从 Bean 执行一些代码,如此处所述。如果您想让它更通用,以便从 XML 文件中读取属性值,您可以自由地解析 Bean 中的 XML 数据并执行您的通用逻辑。

于 2014-09-29T10:29:26.613 回答