首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate工具没有用Oracle序列生成POJO吗?

Hibernate工具没有用Oracle序列生成POJO吗?
EN

Stack Overflow用户
提问于 2016-01-18 14:46:28
回答 1查看 817关注 0票数 1

我正在尝试使用Hibernate工具生成Hibernate实体pojos,eclipse插件/Maven Hibernate插件。POJO生成的很好,但是我需要@Id来使用Oracle序列,如下所示:

代码语言:javascript
复制
@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;
}

我在下面的文章中尝试了这个选项:@SequenceGenerator - allocationSize, reverse engineering with Eclipse Hibernate Tools

但它并没有考虑甲骨文的顺序。它正在生成@id元素如下:

代码语言:javascript
复制
@Id
@Column(name = "PT_KEY", unique = true, nullable = false, precision = 22, scale = 0)
public BigDecimal getPtKey() {
    return this.ptKey;
}

如下所示,请查找hibernate-recse.xml:

代码语言:javascript
复制
 <?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>               

我在这里有遗漏什么吗?请指点。

EN

回答 1

Stack Overflow用户

发布于 2016-01-19 05:39:18

对这两种情况都进行小的调整。

将jdbc类型从数值更改为十进制

代码语言:javascript
复制
<?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="DECIMAL" hibernate-type="java.lang.Long" />
</type-mapping>
<table-filter match-name=".*"></table-filter>
<table name="Patient">
<primary-key>
    <generator class="sequence">
        <param name="sequence">PATIENT_SEQ</param>
    </generator>
    <key-column name="PT_KEY" />
</primary-key>
</table>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34857481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档