hibernate - EntityManager (setHint) 只读和会话只读有什么区别?
问题描述
我正在尝试将某些实体加载为只读,我注意到我有一些选项可以做到这一点,例如 @Immutable 并且在查询中也是只读的。
我的主要问题是 setHint 之间有什么区别:
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)) 的休眠实现间接调用 org.hibernate.Query.setReadOnly(boolean ):
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)
推荐阅读
- php - PHP:POST请求后全局关键字不起作用
- python - 如何将 max 函数从 CPLEX OPL 切换到 Docplex?
- docker - 新节点不与 Docker Swarm 通信
- javascript - 如何在 contenteditable 元素中粘贴多行文本,以便每行始终位于自己的 div 中?
- java - 从 SpringBootApplication 中的 ClientResponse 获取正文
- c# - 通过 GitHub Actions 在 Windows Runner 上安装 SQL Server
- reactjs - 将 React 、 Electron 和 RestApi 转换为 exe
- unity3d - 当我统一重新加载场景时,游戏卡住了
- python - UDP客户端到客户端通信(python)?
- python - 如何将pygame中的图像转换为numpy数组或数字?