休眠实体的主键中的空值
Null value in primary key of hibernate entity
我遇到了PK中空值的问题
这是一个实体:
@Entity
@Table(name="space")
public class Space implements Serializable {
@Id
@GeneratedValue
@Column(nullable = false, unique = true)
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="user_id")
private UserAccount user;
private String name;
private String description;
private Date createdTime;
private Date modifiedTime;
@OneToMany(mappedBy="space")
private Set<SpaceAccess> spaceAccesses = new HashSet<>();
public Set<SpaceAccess> getSpaceAccesses() {
return spaceAccesses;
}
public void setSpaceAccesses(Set<SpaceAccess> spaceAccesses) {
this.spaceAccesses = spaceAccesses;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Space() {}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public UserAccount getUser() {
return user;
}
public void setUser(UserAccount user) {
this.user = user;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
public Date getModifiedTime() {
return modifiedTime;
}
public void setModifiedTime(Date modifiedTime) {
this.modifiedTime = modifiedTime;
}
}
我编写了正确生成 PK 的策略,但是当我创建 Space:
的新实例时,我总是在 id 字段中得到 Null
Space space = new Space();
对象内容如下:
我应该如何使用 hibernate/spring 机制正确生成实例 ID?
application.properties:
spring.datasource.url="some_url"
spring.datasource.username=name
spring.datasource.password=password
spring.jpa.generate-ddl=true
P.S。我使用 spring-boot-starter-data-jpa 版本:2.3.4.RELEASE.
使用:
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
我遇到了PK中空值的问题
这是一个实体:
@Entity
@Table(name="space")
public class Space implements Serializable {
@Id
@GeneratedValue
@Column(nullable = false, unique = true)
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="user_id")
private UserAccount user;
private String name;
private String description;
private Date createdTime;
private Date modifiedTime;
@OneToMany(mappedBy="space")
private Set<SpaceAccess> spaceAccesses = new HashSet<>();
public Set<SpaceAccess> getSpaceAccesses() {
return spaceAccesses;
}
public void setSpaceAccesses(Set<SpaceAccess> spaceAccesses) {
this.spaceAccesses = spaceAccesses;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Space() {}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public UserAccount getUser() {
return user;
}
public void setUser(UserAccount user) {
this.user = user;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
public Date getModifiedTime() {
return modifiedTime;
}
public void setModifiedTime(Date modifiedTime) {
this.modifiedTime = modifiedTime;
}
}
我编写了正确生成 PK 的策略,但是当我创建 Space:
的新实例时,我总是在 id 字段中得到 NullSpace space = new Space();
对象内容如下:
我应该如何使用 hibernate/spring 机制正确生成实例 ID?
application.properties:
spring.datasource.url="some_url"
spring.datasource.username=name
spring.datasource.password=password
spring.jpa.generate-ddl=true
P.S。我使用 spring-boot-starter-data-jpa 版本:2.3.4.RELEASE.
使用:
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}