“基本"属性类型不应是持久性实体 [英] 'Basic' attribute type should not be Persistence Entity
本文介绍了“基本"属性类型不应是持久性实体的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在另一个实体类中引用一个实体并收到此错误.下面是示例代码.我在persistence.xml 中也有这些类.
I am referencing an Entity in another Entity class and getting this error. Below is sample code. I have these classes in the persistence.xml as well.
是什么导致了这个问题?我正在使用 Spring 数据 JPA 和 Hibernate.
What is causing this issue? I am using Spring data JPA and Hibernate.
import javax.persistence.*;
@Entity
@Table(name = "users", schema = "university")
public class UsersEntity {
private long id;
@JoinColumn(name = "address_id", nullable = false)
private Address address;
@Id
@Column(name = "id")
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
import javax.persistence.*;
@Entity
@Table(name = "address", schema = "university")
public class AddressEntity {
private long id;
private String street;
@Id
@Column(name = "id")
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@Basic
@Column(name = "street")
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
}
推荐答案
请尝试以下操作:
@Entity
@Table(name = "users", schema = "university")
public class UsersEntity {
private Long id;
private AddressEntity address;
@Id
@Column(name = "id")
public Long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@OneToOne
@JoinColumn(name = "address_id", nullable = false)
public AddressEntity getAddress() {
return address;
}
public void setAddress(AddressEntity address) {
this.address = address;
}
}
@Entity
@Table(name = "address", schema = "university")
public class AddressEntity {
private Long id;
private String street;
@Id
@Column(name = "id")
public Long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@Column(name = "street")
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
}
基本上我所做的是替换 Long 的 long.并添加了@OneToOne我删除了@Basic,因为它是可选的.我相信它应该可以正常工作
Basically what I did was replace the long for Long. and added the @OneToOne I removed the @Basic since its optional. I believe with that it should just work
这篇关于“基本"属性类型不应是持久性实体的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文