Hibernate 什么';EntityManager(setHint)只读和会话只读的区别是什么?
我试图以只读方式加载一些实体,我注意到我有一些选项可以这样做,比如@Immutable,在查询中也是只读的 我的主要问题是setHint和Hibernate 什么';EntityManager(setHint)只读和会话只读的区别是什么?,hibernate,jpa,Hibernate,Jpa,我试图以只读方式加载一些实体,我注意到我有一些选项可以这样做,比如@Immutable,在查询中也是只读的 我的主要问题是setHint和 getEntityManager().createQuery("SELECT p FROM Post p").setHint(QueryHints.READ_ONLY, true).getResultList(); 和setReadOnly: Query query = session.createQuery("SELECT p FROM
getEntityManager().createQuery("SELECT p FROM Post p").setHint(QueryHints.READ_ONLY, true).getResultList();
和setReadOnly:
Query query = session.createQuery("SELECT p FROM Post p");
query.setReadOnly(true);
query.list();
他们是同一件事吗?同一件事:
javax.persistence.TypedQuery.setHint(String,Object)(org.hibernate.jpa.spi.AbstractQueryImpl.setHint(String,Object))的hibernate实现正在间接调用org.hibernate.Query.setReadOnly(布尔值):
org.hibernate.Query.setReadOnly(boolean)
called by org.hibernate.jpa.internal.QueryImplapplyReadOnlyHint(boolean)
called by org.hibernate.jpa.spi.BaseQueryImplsetHint(String, Object)
called by org.hibernate.jpa.spi.AbstractQueryImpl.setHint(String, Object)