Prawie mówi to w tytule. Mam klasy, który wygląda mniej więcej tak:Jak zmapować ciąg do sekwencji DB w Hibernate
@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; }
}
Korzystanie z Oracle 11g, kolumna FOO_ID
jest VARCHAR2
, ale sekwencja SQ_FOO_ID
daje NUMBER
. Baza danych najwyraźniej jest zadowolona z tego, ale aplikacja musi obsługiwać nie-numeryczne identyfikatory, które mogły zostać wstawione do tej kolumny poza aplikacją.
Biorąc pod uwagę powyższy kod, otrzymuję org.hibernate.id.IdentifierGenerationException: Unknown integral data type for ids : java.lang.String
. Czy istnieje sposób na wykonanie tego mapowania?
Używanie Hibernate 3.6.