【问题标题】:String as Primary Key in Hibernate from oracle sequence来自oracle序列的Hibernate中的字符串作为主键
【发布时间】:2018-03-29 22:57:56
【问题描述】:

我有一个预言机序列

CREATE SEQUENCE  HEALTH_MST_CHILD_SEQ  MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 2 ;

Java 类 (BO)

@Entity
@Table(name="HEALTH_MST_CHILD")
public class HealthMstChild {
    @Id
    @SequenceGenerator(name="childHealthSeq",sequenceName="HEALTH_MST_CHILD_SEQ",allocationSize=1)
        @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="childHealthSeq")
        @Column(name="CHILD_ID")
        private String childId;
}

Oracle 序列生成数值,所以它会引发异常

id 的未知整数数据类型:java.lang.String

如果有什么解决办法请帮帮我。

【问题讨论】:

  • 也许你应该使用 Integer 来存储一个整数序列值?
  • 我想将序列值存储为字符串,我在 oracle 中的数据类型是 varchar2。
  • 您是否能够成功地实现这一点,例如使用 SimpleOne 提出的解决方案?
  • 我发现这个非常灵活和复杂的解决方案,并且今天能够使用它的一部分来解决我自己的问题:vladmihalcea.com/…

标签: java oracle hibernate


【解决方案1】:

试试to_char函数。

例如sequence_no 是具有序列值的整数列:

sequence_value_char = to_char(sequence_no);

然后在你的代码中使用sequence_value_char

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 2019-01-30
    • 1970-01-01
    • 2010-10-25
    • 2017-10-28
    • 2012-05-06
    相关资源
    最近更新 更多