【发布时间】:2012-09-13 02:27:35
【问题描述】:
标题中几乎是这样说的。我有一个看起来像这样的类:
@Entity
@Table(name="FOO")
public class Foo {
private String theId;
@Id
@Column(name = "FOO_ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "fooIdSeq")
@SequenceGenerator(name = "fooIdSeq", sequenceName = "SQ_FOO_ID", allocationSize = 10)
public String getTheId() { return theId; }
public String setTheId(String theId) { this.theId = theId; }
}
使用 Oracle 11g,FOO_ID 列是 VARCHAR2,但序列 SQ_FOO_ID 产生 NUMBER。数据库显然对此很满意,但应用程序需要能够支持可能已在应用程序外部插入此列的非数字 ID。
考虑到上面的代码,我得到一个org.hibernate.id.IdentifierGenerationException: Unknown integral data type for ids : java.lang.String。有没有办法做这个映射?
使用休眠 3.6。
【问题讨论】: