Hibernate getCurrentSession() 与 JPA 的一点小区别

Hibernate: getCurrentSession()
与 JPA entityManangr 的区别:
当用HQL语句查找时, 如果没有结果, getCurrentSession(). 不抛出异常
而用JPQL语句查找时, 如果没有结果, 则抛出java.persistence.NoResultException

这样,用getCurrentSession() 做查找DAO时,只用一个 return 就可以了,
如果没有结果, 就直接返回null, 不需要try catch了.
遗憾的是, 做增删改时,必须要有try catch,否则无法知道是否成功.
这么看来, 做查找时,也应该抛出异常, 因为不一致性,往往需要程序员
学习或实践后才能知道. 好的设计应该让程序员自然的想到该怎么使用.

你可能感兴趣的:(DAO,Hibernate,jpa)