例如我有这些代码:
session = getSessionFactory().getCurrentSession();
users = session.createQuery("from Users where id=?")
.setParameter(0, id)
.list();
并且
session = getSessionFactory().getCurrentSession();
users = session.get(Users.class, id);
我无法明确哪一个更好,我们什么时候应该使用它们?
答案 0 :(得分:1)
在第二种情况下,它返回对象用户(不是列表)的实例。
在第一个用户列表中可以预期。
如果未找到任何内容,则第一个案例返回空列表,但第二个案例返回null。来自Session.java
/**
* Return the persistent instance of the given entity class with the given identifier,
* or null if there is no such persistent instance. (If the instance is already associated
* with the session, return that instance. This method never returns an uninitialized instance.)
*
* @param clazz a persistent class
* @param id an identifier
*
* @return a persistent instance or null
*/
public Object get(Class clazz, Serializable id);