j'ai une hiérarchie de classes:Quelle est la cartographie appropriée JPA pour @Id dans l'ordre parent et unique dans les classes de 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
...
}
notes:
- Je ne ai pas besoin spécifiquement un générateur de classe de base , donc s'il me convient de l'enlever sans problème.
- C'est un oracle 9i db si cela est applicable
- Hibernate 3.4 JPA
- Spring 2.5 est également disponible
Merci
Je crois que ceci ne fonctionnerait que pour votre première extension de DomainObject dans la même unité de persistance. Sur le prochain, où vous devez définir le nom de SequenceGenerator pour être également "SEQ" il échouerait. Au moins, c'est ce que le mien a fait en utilisant le fournisseur EclipseLink JPA, et selon le javadoc http://download.oracle.com/javaee/5/api/javax/persistence/SequenceGenerator.html le nom doit être unique. – digitaljoel
pour quelqu'un d'autre regardant ce sujet ... ce commentaire est le cas pour OpenJPA 2.2. Vous ne pouvez pas surcharger le nom SequenceGenerator. – DAJ