Jakarta ee 实体对象未正确转发到视图图层
对于我们的项目,我们有一个层次结构。DAO层与数据库通信并获取存储的实体。服务层与DAO层通信以获取实体并实现更复杂的方法。然后,视图层与服务层通信以获得所需的信息 实体的一部分:Jakarta ee 实体对象未正确转发到视图图层,jakarta-ee,jpa,persistence,Jakarta Ee,Jpa,Persistence,对于我们的项目,我们有一个层次结构。DAO层与数据库通信并获取存储的实体。服务层与DAO层通信以获取实体并实现更复杂的方法。然后,视图层与服务层通信以获得所需的信息 实体的一部分: @Entity public class Operation implements Serializable { private Integer id; @GeneratedValue @Id public Integer getId() { return id; } public void setId(
@Entity
public class Operation implements Serializable {
private Integer id;
@GeneratedValue
@Id
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
private List<Participation> participations;
@OneToMany
public List<Participation> getParticipations() {
return participations;
}
public void setParticipations(List<Participation> participations) {
this.participations = participations;
}
服务层:
@Override
public Operation getOperation(Integer operationId)
{
Operation operation = operationDAO.read(operationId);
//operation.getParticipations();
return operation;
}
视图层:
Operation o = opService.getOperation(operationId);
在不使用操作的情况下使用它。getParticipations()代码>视图层上缺少参与列表。如果我添加了愚蠢的代码,那么对象将正确转发,并且参与列表可用
我无法向自己解释为什么对象转发不正确?你能帮助我吗?Thx提前
编辑:对象的所有其他属性/字段都已正确转发(请务必了解)@OneToMany默认情况下是延迟加载的用于@OneToMany
默认FetchType
是延迟的
而LAZY
策略是对持久性提供者的一个提示,即当数据第一次被访问时,应该延迟获取数据 您是否在视图层中收到LazyInitializationException?我检查了服务器日志,没有发现任何类似的错误。知道“Operation”的其他属性是否正确转发可能很重要。Thx,我添加了@OneToMany(fetch=FetchType.EAGER)。现在它工作了!
Operation o = opService.getOperation(operationId);