Jak zmapować ciąg znaków do sekwencji DB w trybie hibernacji

Prawie mówi to w tytule. Mam klasę, która wygląda mniej więcej tak:

@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; }
}

Używając Oracle 11g, theFOO_ID kolumna to aVARCHAR2, ale sekwencjaSQ_FOO_ID daje aNUMBER. Baza danych jest najwyraźniej zadowolona z tego, ale aplikacja musi być w stanie 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?

Korzystanie z Hibernate 3.6.

questionAnswers(2)

yourAnswerToTheQuestion