简体   繁体   English

从Oracle序列在Hibernate中将字符串作为主键

[英]String as Primary Key in Hibernate from oracle sequence

i have a oracle sequence 我有一个甲骨文序列

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

Java Class (BO) 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 Sequence generate numeric value so it will raise me Exception Oracle Sequence生成数值,因此会引发异常

Unknown integral data type for ids : java.lang.String id的未知整数数据类型:java.lang.String

if there is any solution please help me. 如果有任何解决方案,请帮助我。

Try to_char function. 尝试to_char函数。

Eg sequence_no is the integer column that has the sequence value: 例如, sequence_no是具有序列值的整数列:

sequence_value_char = to_char(sequence_no);

Then use sequence_value_char in your code. 然后在代码中使用sequence_value_char

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM