在標題中有很多說明。我有一個類,它看起來是這樣的:如何在休眠中將字符串映射到DB序列
@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
。有沒有辦法做這個映射?
使用Hibernate 3.6。