@Id在父类和基类中的唯一序列中的正确JPA映射是什么

Nat*_*ger 9 java hibernate jpa sequences

我有一个类层次结构:

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
...
}
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 我没有特别需要一个基类生成器,所以如果我有理由删除它没有问题.
  • 如果适用,这是一个oracle 9i db
  • Hibernate 3.4 JPA
  • Spring 2.5也可以使用

谢谢

Nat*_*ger 9

好的,这就是我最终解决问题的方法:

基类:

@MappedSuperclass
public abstract class DomainObject implements Serializable {
 @Id
 @GeneratedValue(strategy = GenerationType.SEQUENCE, generator="SEQ")
 @Column(name = "id", updatable = false, nullable = false)
 private Long id;

 .. rest of class
}
Run Code Online (Sandbox Code Playgroud)

后裔类:

@Entity
@SequenceGenerator(name="SEQ",sequenceName="SEQ_DB_NAME")
public class BusinessObject extends DomainObject {

 ...

}
Run Code Online (Sandbox Code Playgroud)