从 MySQL 数据库检索数据后为空实体
Empty Entity after data retrieving from MySQL DB
我有以下实体
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import org.hibernate.annotations.Type;
@Entity
@Table(name = "Privilege", uniqueConstraints = @UniqueConstraint(columnNames = "name"))
public class Privilege implements java.io.Serializable {
private static final long serialVersionUID = 8357379972506504809L;
private Long privilegeId;
private String name;
private String description;
public Privilege() {
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "privilegeID", unique = true, nullable = false)
public Long getId() {
return this.privilegeId;
}
public void setId(Long privilegeId) {
this.privilegeId = privilegeId;
}
@Column(name = "name", unique = true, length = 45)
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@Column(name = "description", length = 65535)
@Type(type="text")
public String getDescription() {
return this.description;
}
public void setDescription(String description) {
this.description = description;
}
}
在 MySQL 数据库中映射 table。
我正在尝试通过以下 QueryDSL 代码检索数据
public Privilege findByName(final String name) throws EntityNotFoundException {
Privilege workgroupPrivilege = new JPAQuery(getEntityManager())
.from(privilege)
.where(privilege.name.eq(name))
.uniqueResult(privilege);
if (workgroupPrivilege == null)
throw new EntityNotFoundException("Cannot find entity "
+ Privilege.class.getCanonicalName()
+ " with name <" + name + ">");
else
return workgroupPrivilege;
}
问题是 findByName()
代码 returns 我是特权实体对象的实例,但其字段中的数据为空。
这意味着 Entity-DB Table 绑定已正确完成(否则我会有一个空的特权实体实例)。
编辑:
Web 应用将此字段添加到 Privilege 的空实例中
handler = org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer@48f52e0b
这个增加的字段会不会是解决问题的关键?
您可能遇到什么问题?
由于延迟数据加载,调试器没有显示任何数据。
我有以下实体
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import org.hibernate.annotations.Type;
@Entity
@Table(name = "Privilege", uniqueConstraints = @UniqueConstraint(columnNames = "name"))
public class Privilege implements java.io.Serializable {
private static final long serialVersionUID = 8357379972506504809L;
private Long privilegeId;
private String name;
private String description;
public Privilege() {
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "privilegeID", unique = true, nullable = false)
public Long getId() {
return this.privilegeId;
}
public void setId(Long privilegeId) {
this.privilegeId = privilegeId;
}
@Column(name = "name", unique = true, length = 45)
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@Column(name = "description", length = 65535)
@Type(type="text")
public String getDescription() {
return this.description;
}
public void setDescription(String description) {
this.description = description;
}
}
在 MySQL 数据库中映射 table。 我正在尝试通过以下 QueryDSL 代码检索数据
public Privilege findByName(final String name) throws EntityNotFoundException {
Privilege workgroupPrivilege = new JPAQuery(getEntityManager())
.from(privilege)
.where(privilege.name.eq(name))
.uniqueResult(privilege);
if (workgroupPrivilege == null)
throw new EntityNotFoundException("Cannot find entity "
+ Privilege.class.getCanonicalName()
+ " with name <" + name + ">");
else
return workgroupPrivilege;
}
问题是 findByName()
代码 returns 我是特权实体对象的实例,但其字段中的数据为空。
这意味着 Entity-DB Table 绑定已正确完成(否则我会有一个空的特权实体实例)。
编辑:
Web 应用将此字段添加到 Privilege 的空实例中
handler = org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer@48f52e0b
这个增加的字段会不会是解决问题的关键?
您可能遇到什么问题?
由于延迟数据加载,调试器没有显示任何数据。