当前位置: 首页 > 面试题库 >

为什么使用Hibernate和Oracle 10g方言通过JPA创建名为hibernate_sequence的序列?

宋航
2023-03-14
问题内容

我所有的实体都使用这种类型的 @Id

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MYENTITY_SEQ")
@SequenceGenerator(name = "MYENTITY_SEQ", sequenceName = "MYENTITY_SEQ")
@Column(name = "MYENTITY", nullable = false)
private Long id;

要么

@Id
@Column(name = "MYENTITY")

我发现hibernate_sequence总是创建一个名为Oracle的序列。为什么会这样呢?我该如何避免呢?

我将JPA1与Hibernate 3和Oracle 10g方言一起使用。


问题答案:

我怀疑这是因为我正在使用Hibernate Envers,因为我仔细检查了我的实体,并且所有实体都有正确的@Id映射。



 类似资料:
  • 问题内容: 在这里记录此信息是因为我只花了一个小时试图解决这个问题。 我有一个实体Foo,拥有: Hibernate为什么不在foo.bar-> bar.id上创建外键约束? 问题答案: 这是因为MySQL在使用ENGINE = MyISAM创建的表上不支持外键约束。您需要使用ENGINE = InnoDB创建(均为!)表。您可以通过调整,添加默认值或在JDBC URL中使用特殊变量来执行此操作:

  • 问题内容: 我有一个实体: 和一个实体: Hibernate在foo.bar-> bar.id上创建外键约束,但未指定。为什么不?并且有什么方法可以实现? 或者,我可以在数据库中手动添加(并禁用DDL生成), 这是一个好习惯吗? 而且,我是否必须以某种方式修改代码以让Hibernate知道相关记录已被数据库自动删除? 谢谢。 更新 -这是我的JPA / Hibernate / PostgreSQL

  • 问题内容: 似乎Hibernate开始在3.5.5版(我们从3.2.7升级)中使用数据类型,而不是使用的属性。 这是造成问题,因为在Oracle数据类型是一个古老的过时的数据类型(参见http://www.orafaq.com/wiki/LONG不应被使用),以及表不能具有一个以上的列作为数据类型。 有谁知道为什么改变了? 我尝试将Oracle 属性设置为true(如[Hibernate>CLOB

  • 问题内容: 我有一些代码: hibernate状态如何提供我的ID? 我在数据库中看到一个名为“ hibernate_sequence”的序列,没有其他hibernate的“特殊表”。 问题答案: 实际上,这是您在hibernate配置中某处配置的序列的名称。并且是数据库中的序列名称。在配置中,其外观如下图所示, 您可以改为使用注释来完全跳过此配置。然后,您的注释将需要提供更多的参数。以下是示例。

  • 问题内容: Paul Tyma的演讲有以下内容: Executors.newCacheThreadPool邪恶,死死 为什么是邪恶的? 我会冒险猜测:是因为线程数将以无限制的方式增长。因此,如果达到了JVM的最大线程数,被斜线标记的服务器可能会死掉? 问题答案: 问题在于执行器将创建和启动执行执行提交给它的任务所需的尽可能多的线程。尽管可以通过释放完成的线程(阈值是可配置的)来缓解这种情况,但这确

  • 问题内容: 我有以下hibernate.cfg.xml: 我尝试了另一种方言(),但结果却很旧 pom.xml: 当调用以下代码行时: 我看到以下堆栈跟踪: 这个问题的原因是什么? 如何解决? 聚苯乙烯 数据库架构在MySql中不存在! 如果我明确添加数据库shema-一切正常。 从Java应用程序创建架构的方法在哪里? 问题答案: 我通常在使用Spring时使用属性文件自动创建数据库,以下是它的