Spring 休眠条件嵌套对象
Spring hibernate criteria nested object
我无法正确查询我的数据。
@Id
@GeneratedValue
private Integer id;
@Size(min = 1, message = "")
@Column(unique = true)
@UniqueUserName(message = "")
private String name;
@Size(min = 1, message = "")
@Email
private String email;
@Size(min = 5, message = "")
private String password;
private boolean enabled;
@ManyToMany
@JoinTable
private List<Role> roles;
@OneToOne
@JoinColumn
private PersonalData personalData;
@OneToMany(cascade = CascadeType.REMOVE)
@JoinColumn(name = "OWNED_USER_ID")
private List<User> userList;
那是我的 class 用户。我想按用户获取所有拥有用户的列表。
这是我的代码:
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class);
detachedCriteria.setProjection(Property.forName("userList.id"));
Session session = entityManager.unwrap(Session.class);
Criteria criteria = session.createCriteria(OfferStorage.class);
criteria.add(Subqueries.propertyIn("user.id", detachedCriteria));
criteria.list();
这是 return 我跟随的错误
无法解析 属性:userList.id
用userList.user.id也是一样。有什么想法吗?
好吧,真快。
如果其他人有问题,这里有答案
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class);
detachedCriteria.createAlias("userList", "userList");
detachedCriteria.add(Restrictions.eq("id", userId ));
detachedCriteria.setProjection(Property.forName("userList.id"));
Session session = entityManager.unwrap(Session.class);
Criteria criteria = session.createCriteria(OfferStorage.class);
criteria.add(Subqueries.propertyIn("user.id", detachedCriteria));
criteria.list();
我无法正确查询我的数据。
@Id
@GeneratedValue
private Integer id;
@Size(min = 1, message = "")
@Column(unique = true)
@UniqueUserName(message = "")
private String name;
@Size(min = 1, message = "")
@Email
private String email;
@Size(min = 5, message = "")
private String password;
private boolean enabled;
@ManyToMany
@JoinTable
private List<Role> roles;
@OneToOne
@JoinColumn
private PersonalData personalData;
@OneToMany(cascade = CascadeType.REMOVE)
@JoinColumn(name = "OWNED_USER_ID")
private List<User> userList;
那是我的 class 用户。我想按用户获取所有拥有用户的列表。
这是我的代码:
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class);
detachedCriteria.setProjection(Property.forName("userList.id"));
Session session = entityManager.unwrap(Session.class);
Criteria criteria = session.createCriteria(OfferStorage.class);
criteria.add(Subqueries.propertyIn("user.id", detachedCriteria));
criteria.list();
这是 return 我跟随的错误 无法解析 属性:userList.id
用userList.user.id也是一样。有什么想法吗?
好吧,真快。
如果其他人有问题,这里有答案
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class);
detachedCriteria.createAlias("userList", "userList");
detachedCriteria.add(Restrictions.eq("id", userId ));
detachedCriteria.setProjection(Property.forName("userList.id"));
Session session = entityManager.unwrap(Session.class);
Criteria criteria = session.createCriteria(OfferStorage.class);
criteria.add(Subqueries.propertyIn("user.id", detachedCriteria));
criteria.list();