我正在使用Hiberbnate 3.1.3。我有如下映射,当我尝试将记录插入TEST_TABLE时,出现异常:’线程“ main”
org.hibernate.exception.SQLGrammarException中的异常:无法获取增量生成器的初始值”
<class name="com.test.app.to.TestTable" table="TEST_TABLE" schema="TEST">
<id name="testId" type="long">
<column name="TEST_ID" precision="12" scale="0" />
<generator class="increment"></generator>
</id>
</class>
我在cfg.xml中设置了以下默认模式,因为我需要在应用程序中使用OTHER_SCHEMA中的表。
<property name="hibernate.default_schema">OTHER_SCHEMA</property>
在上述情况下,这似乎是一个Hibernate Bug,因为使用TestTable对象进行读取可以正常工作并正确使用“
TEST”模式,但是'<generator class="increment"></generator>'
不使用“ TEST”模式,而是使用默认的“
OTHER_SCHEMA”来获取最大值ID。为最大ID生成的查询如下:
Hibernate: select max(TEST_ID) from OTHER_SCHEMA.TEST_TABLE
我无法为生成器指定架构,并且未使用我希望其使用的类的schema =“ TEST”属性。
该问题如何解决?
问题内容: 我有一些代码: hibernate状态如何提供我的ID? 我在数据库中看到一个名为“ hibernate_sequence”的序列,没有其他hibernate的“特殊表”。 问题答案: 实际上,这是您在hibernate配置中某处配置的序列的名称。并且是数据库中的序列名称。在配置中,其外观如下图所示, 您可以改为使用注释来完全跳过此配置。然后,您的注释将需要提供更多的参数。以下是示例。
我正在测试JPA2。1和新的“模式生成”功能。为此,我在HyperSQL数据库下测试了两个实现: Eclipse Link 2.5.2-M1,它是参考实现。 Hibernate4.3 我对实现没有任何偏好(甚至对性能也没有偏好)。我测试了EclipseLink,因为它是第一个JPA2。1实现可用,但现在,Hibernate4.3在这里,JPA2也在这里。1合规。我唯一想要的是获得独立于JPA提供者
问题内容: 我正在使用 Java 应用程序,该应用程序应该在具有相同数据库架构的两个不同数据库上执行CRUD操作(使用 Hibernate 4.3.8)。有一个 MySQL (版本5.1.73)和一个 Oracle (11g Express Edition版本11.2.0.2.0-64位)数据库。 使用Hibernate Code Generation从数据库表中生成带有 JPA批注的 Java类
问题内容: 我有一个具有以下定义的类: 当我们在Jboss 4.2.3上运行它时,它可以正常工作并生成正确的ID(从1000+开始) 现在我们转到jboss 7.1.1,它会生成负ID!(从-498开始,然后上升) 知道为什么会发生这种情况吗? 问题答案: 从JBoss 6.1迁移到JBoss 7.1时遇到了这个问题。 根据JBoss AS 7.1 JPA文档(https://docs.jboss
我需要firebase来存储任何模型的自动增量Id数据,我应该做什么?
我将hibernate 4.2.12与oracle 11g一起使用,我需要告诉hibernate不要在生成的sql中附加任何模式前缀。因此,我从实体中删除@Entity注释中的任何模式引用。但是,hibernate工具尝试使用SCHEMA.TABLE\u名称验证我的表。为了强制hibernate不使用模式前缀,我在persistence.xml中将属性“hibernate.default_sche