Spring 为什么冬眠不';如果没有getter&;实体中的setter
我有一个实体类,没有getter和setter 我在数据库中有4条记录。当我尝试创建rest服务并从db查询这些数据时,hibernate返回4个空元素Spring 为什么冬眠不';如果没有getter&;实体中的setter,spring,hibernate,rest,spring-boot,jpa,Spring,Hibernate,Rest,Spring Boot,Jpa,我有一个实体类,没有getter和setter 我在数据库中有4条记录。当我尝试创建rest服务并从db查询这些数据时,hibernate返回4个空元素 [{},{},{},{},{}] Hibernate尝试将记录设置到实体中,但由于没有setter方法而失败 所以为什么hibernate不抛出异常,比如“并没有setter,设置失败了…”,它试图设置并返回空列表 告诉我原因,这是一个bug还是在不同的日志路径中返回错误,我不知道 编辑:这是Entity.class import javax
[{},{},{},{},{}]
Hibernate尝试将记录设置到实体中,但由于没有setter方法而失败
所以为什么hibernate不抛出异常,比如“并没有setter,设置失败了…”,它试图设置并返回空列表
告诉我原因,这是一个bug还是在不同的日志路径中返回错误,我不知道
编辑:这是Entity.class
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "entry_table", schema = "public")
public class Entry {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ENTRY_ID")
private Long entryId;
@Column(name = "USER_NAME")
private String userName;
@Column(name = "USER_ENTRY")
private String userEntry;
public Entry(Long entryId, String userName, String userEntry) {
this.entryId = entryId;
this.userName = userName;
this.userEntry = userEntry;
}
public Entry() {
}
}
简单的回答是它不是一个BUG 正如你从文件中看到的 标准的、可移植的JPA本质上需要这一点。否则你的模型 将违反上述关于访问 实体持久状态字段直接来自实体外部 本身 虽然Hibernate不需要它,但建议遵循 通过为实体定义getter和setter,实现JavaBean约定 持久属性。您仍然可以告诉Hibernate直接访问 实体的字段 您得到的是空元素,因为您可能不会向外界公开实体类的任何字段。所以这是正常的 从医生那里 使用基于字段的访问的优点是,一些实体属性 可以从实体外部隐藏。这种属性的一个例子是 实体@Version字段,数据不能对其进行操作 访问层。使用基于字段的访问,我们可以省略getter 这个版本字段的setter和Hibernate仍然可以 利用乐观并发控制机制
简单的回答是它不是一个BUG 正如你从文件中看到的 标准的、可移植的JPA本质上需要这一点。否则你的模型 将违反上述关于访问 实体持久状态字段直接来自实体外部 本身 虽然Hibernate不需要它,但建议遵循 通过为实体定义getter和setter,实现JavaBean约定 持久属性。您仍然可以告诉Hibernate直接访问 实体的字段 您得到的是空元素,因为您可能不会向外界公开实体类的任何字段。所以这是正常的 从医生那里 使用基于字段的访问的优点是,一些实体属性 可以从实体外部隐藏。这种属性的一个例子是 实体@Version字段,数据不能对其进行操作 访问层。使用基于字段的访问,我们可以省略getter 这个版本字段的setter和Hibernate仍然可以 利用乐观并发控制机制
rest响应为空是因为JSON序列化在实体中找不到访问器。对于所有属性,您至少需要
getter
,JSON序列化才能工作并显示正确的响应
Hibernate正确地填充实体并将它们发送到REST层 空rest响应是由于JSON序列化没有在实体中找到访问器。对于所有属性,您至少需要
getter
,JSON序列化才能工作并显示正确的响应
Hibernate正确地填充实体并将它们发送到REST层
Hibernate试图将记录设置到实体中,但由于没有setter方法而失败。
您如何知道Hibernate正在尝试设置值,但由于缺少setter而导致bco失败?实例变量是可访问的还是私有的?这[{}、{}、{}、{}、{}、{}、{}]是REST api的响应还是您检查了DAO层?实体类的实例变量是可从外部访问的吗?用于在数据库中保存新实体实例,如何填充这些实例变量?能否发布实体类?@MadhusudanaReddySunnapu,因为它返回空列表。Hibernate尝试将记录设置到实体中,但失败,因为没有setter方法。
您如何知道Hibernate正在尝试设置值,但由于缺少setter而导致BCO失败?实例变量是可访问的还是私有的?这[{}、{}、{}、{}、{}、{}、{}]是REST api的响应还是您检查了DAO层?实体类的实例变量是可从外部访问的吗?为了在数据库中保存新的实体实例,如何填充这些实例变量?能否发布实体类?@madhusudanareddysunapu,因为它返回空列表。