gpt4 book ai didi

javax.persistence 字段、getter 或 setter 上的注释?

转载 作者:太空狗 更新时间:2023-10-29 22:43:27 25 4
gpt4 key购买 nike

我目前正在学习 Hibernate 和 Java Persistence API。

我有一个@Entity 类,需要对各个字段应用注释。我在下面的代码中包含了他们可以去的所有三个地方。

我应该将它们应用于字段本身、getter 还是 setter?这三个选项之间的语义差异是什么(如果有)。

import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;

@Entity
@Table(name = "song")
public class Song {
// Annotations should only be applied to one of the below

@Id
@Column(name="id", unique=true, nullable=false)
private int id;

@Id
@Column(name="id", unique=true, nullable=false)
public int getId() {
return id;
}

@Id
@Column(name="id", unique=true, nullable=false)
public void setId(int id) {
this.id = id;
}
}

最佳答案

你必须在 field 和 getter 之间做出选择。不支持 setter 上的注释。所有注释都应该在字段上,或者它们都应该在 getter 上:你不能混合使用这两种方法(除非你使用 @AccessType 注释)。

关于哪个是首选,答案是:视情况而定。我更喜欢字段访问,但 YMMV,并且在某些情况下更喜欢属性访问。参见 Hibernate Annotations - Which is better, field or property access? .

关于javax.persistence 字段、getter 或 setter 上的注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8965116/

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