多数据库上的Hibernate映射(Oracle、Mysql)
我希望我的web应用程序在mysql和Oracle上运行,我使用Hibernate 5。我的hibernate映射如下所示:多数据库上的Hibernate映射(Oracle、Mysql),oracle,hibernate,hibernate-mapping,hibernate-5.x,Oracle,Hibernate,Hibernate Mapping,Hibernate 5.x,我希望我的web应用程序在mysql和Oracle上运行,我使用Hibernate 5。我的hibernate映射如下所示: public class EventEntity { @Id @GeneratedValue(generator = "id_generator_EventEntity") @GenericGenerator(name = "id_generator_EventEntity", strategy = "native", parameters =
public class EventEntity {
@Id
@GeneratedValue(generator = "id_generator_EventEntity")
@GenericGenerator(name = "id_generator_EventEntity", strategy = "native", parameters = {
@Parameter(name="sequence_name", value="EVENT_SQ")
})
private Long id;
由于我使用本机生成器,所以它在Mysql上使用autoincrement,在Oracle上使用sequence,效果很好。但是,我还定义了插入事件时应使用的序列,但在插入过程中出现以下错误:
2018-11-19 09:35:05.228 DEBUG [org.hibernate.SQL:94] -
select
hibernate_sequence.nextval
from
dual
2018-11-19 09:35:05.302 DEBUG [org.hibernate.engine.jdbc.spi.SqlExceptionHelper:126] - could not extract ResultSet [n/a]
java.sql.SQLSyntaxErrorException: ORA-02289: sequence does not exist
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494)
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446)
...
因此,它忽略了我的提示应该使用哪个序列,并希望使用默认序列(hibernate_序列)
需要帮忙吗
谢谢,五, //////////////////////////////更新1//////br> 到目前为止,我的解决方案是降级到Hibernate 4并使用以下映射:
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "id_generator_EventEntity")
@SequenceGenerator(name="id_generator_EventEntity", sequenceName = "EVENT_SQ")
private Long id;
Hibernate 5中是否可能没有解决方案