4. März 2009

JPA: Sequences mit Oracle

Problem: Wenn man mit JPA und einer Oracle-Datenbank @GeneratedValue(strategy=GenerationType.SEQUENCE,...) verwendet, werden merkwürdige PKs erzeugt, die nichts mit dem Wert aus der Oracle-Sequence zu tun haben.

Lösung: strategy=GenerationType.SEQUENCE weglassen, da dies intern ein HILO-Verfahren verwendet und nicht jedes Mal die Sequence befragt:

@Id
@GeneratedValue(generator="myseq")
@SequenceGenerator(name="myseq",sequenceName="MY_SEQ")
@Column(name = "PK_MY_TABLE", unique = true, nullable = false, precision = 11, scale = 0)
public long getPkMyTable() {
return this.pkReprData;
}

1 Kommentar:

Pascal Mengelt hat gesagt…

Danke das war hilfreich

gruss Pascal