get
对createQuery
有什么好处?
我可以看到,不必解析HQL可能会有轻微的性能提升,但使用get over createQuery还有其他主要优势吗?
答案 0 :(得分:5)
首先,输入更快,更具可读性,并清楚地表达意图:通过ID获取实体。而且基本上不可能出错,而你的HQL查询可能会出现错字。
关于性能,主要优点是仅当实体不在会话缓存中时才执行select语句。每次都会执行HQL查询。如果您有二级缓存,get()
将避免在实体已经位于二级缓存中时完全执行查询。
答案 1 :(得分:0)
get()
直接使用session来检索对象。
createQuery()
使用HQL