【发布时间】:2021-10-01 20:52:24
【问题描述】:
我有这段代码,作者在其中创建了一个 JPA 实体。不知何故,它成功地工作了,这对我来说似乎很奇怪,因为并非每个字段都用“@Column”注释。基于此,这是我的问题:
如果每个字段都没有“列”注释(“id”除外),这个类如何才能正常工作(所有数据都成功记录在数据库中)?
/**
* @author Ram Alapure
* @since 05-04-2017
*/
@Entity
@Table(name="User")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "id", updatable = false, nullable = false)
private long id;
private String firstName;
private String lastName;
private LocalDate dob;
private String gender;
private String role;
private String email;
private String password;
@Override
public String toString() {
return "User [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + ", dob=" + dob + ", email="
+ email + "]";
}
}
例如,这里有另一个类也可以正常工作。但是这一次,在每个字段中都有一个“@Column”注释。我认为这是 JPA 从字段创建列的先决条件。
@Entity
@Table(name = "address")
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "address_id")
private long id;
@Column(name = "rua")
private String street;
@Column(name = "number")
private int number;
@Column(name = "complement")
private String complement;
@Column(name = "suburb")
private String suburb;
@Column(name = "city")
private String city;
@Column(name = "state")
private String state;
@Column(name = "country")
private String country;
@Column(name = "cep")
Getter 和 Setter 被隐藏在所有代码中,因为它们看起来就像普通的 getter 和 setter,没有必要显示出来。
【问题讨论】:
标签: spring spring-boot hibernate jpa spring-data-jpa