我正在尝试选择一对多关系大于零的行。
即在SQL中
query = sessionFactory.getCurrentSession().createQuery(
"FROM UserSessionReport usr WHERE usr.userId = :userId
AND usr.userTracking.size > 0 ORDER BY created DESC");
和Hibernate表联接
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "user_session_id", updatable = false)
@LazyCollection(LazyCollectionOption.FALSE)
private List<UserTracking> userTracking = new ArrayList<UserTracking>();
这使查询非常慢,即加载需要30秒。
还有另一种方法可以对其进行优化,使其仅返回usr.userTracking.size > 0