簡體   English   中英

java如何動態地初始化注釋

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM