ho una gerarchia di classi:Qual è la corretta mappatura APP per @Id nel genitore e sequenza unica di classi base
abstract DomainObject {
...
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="SEQ")
@SequenceGenerator(name="SEQ",sequenceName="SEQ_DB_NAME")
@Column(name = "id", updatable = false, nullable = false)
private Long id;
...
}
BaseClass extends DomainObject {
...
// Fill in blank here where this class's @Id will use a unique sequence generator
// bonus points for any sort of automatic assignment of generator names that might
//prevent me from having to instrument all my domain objects uniquely
...
}
note:
- non ho specificamente bisogno di un generatore di classe di base , quindi se mi dovessi rimuovere senza problemi.
- Questo è un db Oracle 9i, se questo è applicabile
- Hibernate 3.4 JPA
- Primavera 2.5 è disponibile pure
Grazie
Credo che ciò funzionerebbe solo per la prima estensione di DomainObject all'interno della stessa unità di persistenza. Sul prossimo, in cui devi impostare il nome di SequenceGenerator per essere anche "SEQ", fallirebbe. Almeno questo è quello che il mio ha fatto usando il provider JPA di EclipseLink, e secondo il javadoc http://download.oracle.com/javaee/5/api/javax/persistence/SequenceGenerator.html il nome deve essere unico. – digitaljoel
per chi guarda questo thread ... questo commento è il caso di OpenJPA 2.2. Non è possibile sovraccaricare il nome di SequenceGenerator. – DAJ