gpt4 book ai didi

java - 如何结合 hibernate 映射的注释?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:49:58 27 4
gpt4 key购买 nike

假设(使用 JPA )我有一个带有 id 的实体:

...
@Id
@TableGenerator(name = "EVENT_GEN",
table = "SEQUENCES",
pkColumnName = "SEQ_NAME",
valueColumnName = "SEQ_NUMBER",
pkColumnValue = "ID_SEQUENCE",
allocationSize=1)
private Long id;
...

我怎样才能声明一个自定义注解,这样上面的 id 映射将是:

@CustomIdAnnotation
private Long id

可能是这样的SO answer .

最佳答案

作为Neil Stockton mention ,元注释可能是 part下一个 JPA 2.2 版。

现在,对于 JPA 2.1,我可以使用 @Embeddable id ( @EmbeddedId ) 和非 id 字段 ( @Embedded ) 的类

请注意,对于@Embeddable,我可以使用泛型类,因此它对任何类型都有用 + 我可以轻松覆盖我的列属性:

@Embeddable
@Getter @Setter @NoArgsConstructor // Lombok library
public class EmbeddableGeneric<T> {
@Column
// other annotations
T myField;

...
}

在我的实体类中:

@Entity
@Getter @Setter @NoArgsConstructor // You know now what's this!
public class Person {

@Id
@GeneratedValue
private Long id;

@Embedded
@AttributeOverride(name = "myField", column = @Column(name = "STRING_FIELD"))
private EmbeddableGeneric<String> myString;

...
}

让我们等待 JPA 2.2 克服这种冗长。

关于java - 如何结合 hibernate 映射的注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45239955/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com