在hibernate中使用关系时,我得到null。 这是我的代码 用户实体
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
private long userId;
@OneToMany(mappedBy="user",targetEntity=LoginHistory.class, fetch=FetchType.LAZY,cascade = CascadeType.ALL)
private List<LoginHistory> loginHistory = new ArrayList<LoginHistory>();
LoginHistory实体
@Entity
@Table(name = "login_history")
public class LoginHistory {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@ManyToOne(cascade = CascadeType.DETACH)
@JoinColumn(name="userId",referencedColumnName="id")
private User user;
获取登录历史记录详细信息
@Override
public List<LoginHistory> getLoginHistory(User user) {
List<LoginHistory> lst = user.getLoginHistory();
return lst;
}
我得到一个空列表。请帮忙
答案 0 :(得分:0)
它正在设计,因为您正在访问一个延迟加载的实体。如果您继续保持延迟加载,请使用下面的代码来获取登录历史记录。
User user = getByKey(id);
if(user!=null){
Hibernate.initialize(user.getUserProfiles());
}