我的目标是编写最短的查询,以按用户ID My UserEntity.class部分获得当前测试:
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "result", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "test_id"))
private Set<Test> tests;
这是示例,我如何为他(我的UserDAO.class)获得所有测试:
public List<Test> getAvailableTestsById(long id){ Query query = em.createQuery("SELECT u.tests FROM User u WHERE u.id = :id"); query.setParameter("id", id); return (List<Test>)query.getResultList(); }
现在,我想为用户进行一项测试(例如,通过ID)。我怎样才能最好地做到这一点?我可以编写带有许多联接的长SQL查询,但是我觉得这不是一个合适的解决方案。我可以使用UserEntity.class中的Set来查找我需要的测试(按ID)吗?
仅是get
该用户,或者load
如果您确定该用户存在,则为该用户,然后获取该Test
用户的s:
User user = session.load(User.class, userId);
或者
User user = (User) session.get(User.class, userId);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句