hibernate createQuery vs get

B T*_*B T 4 java hibernate

没有什么优势get有过createQuery

我可以看到,不必解析HQL可能会有轻微的性能提升,但使用get over createQuery还有其他主要优势吗?

JB *_*zet 5

首先,键入更快,更具可读性,并清楚地表达意图:通过其ID获取实体.而且基本上不可能出错,而你的HQL查询可能会输入错误.

关于性能,主要优点是仅当实体不在会话高速缓存中时才执行select语句.每次都会执行HQL查询.如果你有二级缓存,get()如果实体已经在二级缓存中,将避免完全执行查询.