[英]java How to initialize Annotation dynamicly
我有以下結構:
@MappedSuperclass
public class AbstractEntitySequence {
@Id
@GeneratedValue( strategy = GenerationType.SEQUENCE, generator="X?" )
@SequenceGenerator( allocationSize = 1, name = "X?" )
@Column( name = "id", nullable = false, unique = true )
private Long id;
和子實體:
@Entity
@Table( name = "BANK" )
public class Bank extends AbstractEntitySequence implements Serializable {
...
}
和其他實體。
我需要每個實體都有一個SEQUENCE生成器名稱,並且我不想將其放置在每個實體中(作為^ C ^ V)是否有可能以某種方式初始化子類的Abstract類中的注釋(替換X1)?
您只能在一個實體類中定義@SequenceGenerator ,它將對所有實體都可用,因為根據JavaDoc:
生成器名稱的范圍對於持久性單元是全局的(跨所有生成器類型)。
因此,這就是您的映射的外觀:
@Entity
@SequenceGenerator(name="X", allocationSize=1)
public class Bank {
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="X")
@Id long id;
}
@Entity
public class InsuranceCompany {
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="X")
@Id long id;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.