【发布时间】:2016-01-19 13:39:18
【问题描述】:
我正在尝试使用 Hibernate Tools eclipse 插件/Maven Hibernate 插件生成 Hibernate 实体 pojo。 POJO 生成良好,但我需要 @Id 使用 Oracle 序列,如下所示:
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="patient_sequence")
@SequenceGenerator(name="patient_sequence", sequenceName="PATIENT_SEQ")
@Column(name = "PT_KEY", unique = true, nullable = false, precision = 22, scale = 0)
public Long getPtKey() {
return this.ptKey;
}
我尝试了以下 POST 中给出的选项: @SequenceGenerator - allocationSize, reverse engineering with Eclipse Hibernate Tools
但它没有考虑oracle序列。它正在生成@id 元素,如下所示:
@Id
@Column(name = "PT_KEY", unique = true, nullable = false, precision = 22, scale = 0)
public BigDecimal getPtKey() {
return this.ptKey;
}
请找到 hibernate-reverse.xml 如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" >
<hibernate-reverse-engineering>
<schema-selection match-schema="DOC" />
<type-mapping>
<sql-type jdbc-type="NUMERIC" hibernate-type="java.lang.Long" />
</type-mapping>
<table-filter match-name=".*"></table-filter>
<table name="Patient">
<primary-key>
<generator class="org.hibernate.id.SequenceGenerator">
<param name="sequence">PATIENT_SEQ</param>
</generator>
<key-column name="PT_KEY" />
</primary-key>
</table>
</hibernate-reverse-engineering>
我在这里有什么遗漏吗?请指教。
【问题讨论】:
标签: eclipse oracle hibernate maven hibernate-tools