5

我不想在我的 java 源代码中进行配置,可以这样做:

@org.hibernate.annotations.Entity(
        dynamicUpdate = true) 

因为我希望它是可配置的。

我没有使用hibernate.properties,只有persistence.xml,因为我使用的是JPA。我怎样才能使所有实体dynamicUpdate只使用?truepersistence.xml

4

1 回答 1

5

您正在将 JPA 标准与 Hibernate 实现一起使用。在这种情况下,您尝试配置特定于 Hibernate 实现而不是 JPA 标准的一部分的东西。如果它是一个有助于配置实现的属性,那么其中许多可以通过 persistence.xml 传递给实现,但是在这种情况下,您尝试为每个实体配置属性,您将不得不这样做休眠方式。您可能已经在 Bozho 的回答中看到过这个问题。

尽管如此,如果您决定继续使用 org.hibernate.* 注释进行配置,您将无法真正使其可配置,因为注释值必须是常量表达式。

一个有趣的解决方案是在启动监听器中修改所有持久类并添加属性。您可以读取配置的值并使用该问题的答案中描述的机制进行设置。

于 2012-10-26T23:00:18.803 回答