@ResponseStatus(value=)

Hibernate
OneToOne:
使用optional=false,才能使用lazy
如果关联字段是当前表的主键,我试了不加optional=false,lazy也生效,如果不使用lazy, 默认会使用left out join 来查询

@Column(nullable=false)
is an instruction for generating the schema. The database column generated off the class will be marked not nullable in the actual database.
optional=false
is a runtime instruction. The primary functional thing it does is related to Lazy Loading. You can't lazy load a non-collection mapped entity unless you remember to set optional=false (because Hibernate doesn't know if there should be a proxy there or a null, unless you tell it nulls are impossible, so it can generate a proxy.)

Session:
长session应用性能影响并不大,如果不进行数据库操作,session不会获取jdbc连接, hibernate建议每个请求对应一次session
使用vo封装视图层需要的数据与openSessionInView各有优势,可以视情况使用,使用vo时,可以用Hibernate.initialize()或者用fetch查询出关联数据填充vo
使用ThreadLocalSessionContext策略,Hibernate的Session会随着getCurrentSession()方法自动打开,并随着事务提交自动关闭。
Session的打开关闭并意味着JDBC连接的打开关闭,创建Session时,并不会打开与数据库的连接,只有需要进行数据库操作时,才会获取JDBC连接
一级缓存是session级别,二级缓存将缓存所有访问过的实体,查询缓存缓存特定的数据

FetchMode:
不设置,默认为FetchMode.SELECT, 可以使用Lazy,会有n+1问题
FetchMode.JOIN - 采用外联,用一条sql取出关联数据,lazy无效
FetchMode.SUBSELECT- 生成两条sql, 第二条用in去查询关联数据
fetch_size - 设置批量查询的条数,和SUBSELECT类似,用in查询关联数据,生成多少sql取决于关联的数据量,默认是10,一般设置为50-100为佳
batch_size - 批量删除、更新、插入的量,一般设置为50-100为佳
max_fetch_depth - 外连接抓取深度,设置为0-3为佳

测试感觉OneToMany应用FetchMode.JOIN无效,需要进一步验证

Spring相关技术记录的更多相关文章

  1. 【JavaWeb】Spring相关错误记录

    Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: ...

  2. JavaScript对SVG进行操作的相关技术

    原文地址:http://www.ibm.com/developerworks/cn/xml/x-svgscript/   本文主要介绍在 SVG 中通过编程实现动态操作 SVG 图像的知识. SVG ...

  3. SAAS相关技术要点

    这篇文章本来是我们开发组内部用的一个小文档.因为我们公司以前没有做SAAS的经验,就成立了一个小组做一做这方面的技术前探,我是成员之一.这篇文档想从宏观的层面把开发一个SAAS应用所要用到的技术点稍微 ...

  4. MVC中Controller控制器相关技术

    第6章Controller相关技术 Controller(控制器)在ASP.NET MVC中负责控制所有客户端与服务器端的交互,并 且负责协调Model与View之间的数椐传递,是ASP.NET MV ...

  5. j2e应用相关技术

    j2e应用相关技术 轻量级j2e应用以传统的jsp作为变现层技术,以一系列开源框架作为MVC层,中间件,持久层解决方案,并将这些开源框架有机组合在一起,使得j2e具有高度的可扩展性,可维护性. ser ...

  6. selenium相关技术研究(从1.0-3.0)

    注: 以下内容引自http://www.cnblogs.com/hhudaqiang/p/6550135.html Selenium相关技术研究(从1.0-3.0) 好吧,最近看wxpython有点多 ...

  7. JavaEE之servlet相关技术

    相关技术:为了灵活实现的不同路径(/hello)执行不同的资源( HeIIoMyServlet)我们需要使用XML进行配置;为了限定XML内容,我们需要使用xml约束(DTD或schema);为了获得 ...

  8. GNN 相关资料记录;GCN 与 graph embedding 相关调研

    最近做了一些和gnn相关的工作,经常听到GCN 和 embedding 相关技术,感觉很是困惑,所以写下此博客,对相关知识进行索引和记录: 参考链接: https://www.toutiao.com/ ...

  9. spring security实现记录用户登录时间等信息

    目录 spring security实现记录用户登录时间等信息 一.原理分析 二.实现方式 2.1 自定义AuthenticationSuccessHandler实现类 2.2 在spring-sec ...

随机推荐

  1. python+selenium中webdriver相关资源

    Chrome chrome的webdriver :  http://chromedriver.storage.googleapis.com/index.html chrome的webdriver需要对 ...

  2. Python 变量与数据类型

    1.变量命名规则: 变量名只能是字母,数字和下划线的任意组合 变量名第一个字符不能是数字 变量名区分大小写,大小写字母被认为是两个不同的字符 特殊关键字不能命名为变量名 2.数值的运算 print ( ...

  3. 「题解」:[组合数学][DP]:地精部落

    拿到这道题秒懂题意:波动序列. 然鹅不会打.想了一节课,想打纯组合数学,结果找不到规律. 想的是先假设拍出一个序列,然后交换其中的元素求组合, 无奈没啥规律可循,显然不能一口气求出来(我说的是我没办法 ...

  4. Java-MyBatis-MyBatis3-XML映射文件:自动映射

    ylbtech-Java-MyBatis-MyBatis3-XML映射文件:自动映射 1.返回顶部 1. 自动映射 正如你在前面一节看到的,在简单的场景下,MyBatis 可以为你自动映射查询结果.但 ...

  5. Python学习day10-文件处理

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  6. 第一周课堂笔记3th

    1.bool值    True正确                False错误   数字为0时的显示  为空值时“” 2. str   int   bool布尔值  之间的转化 str   int  ...

  7. Apache ActiveMQ教程

    一.特性及优势 1.实现JMS1.1规范,支持J2EE1.4以上 2.可运行于任何jvm和大部分web容器(ActiveMQ works great in any JVM) 3.支持多种语言客户端(j ...

  8. hue mysql连接不上数据库排查

    由于CDH所有的组件都会进行agent检测,所以先到/var/log/cloudera-scm-agent(mysql所在节点进行日志排查),可以发现每次连接会产生一个log路径作为记录hue连接my ...

  9. java最常用的几种加密算法

    1. BASE64 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045-RFC2049,上面有MIME的详细规范.Base64编码可用于在HTTP环境下传递 ...

  10. @Restcontroller与@controller区别

    @RestController注解相当于@ResponseBody + @Controller合在一起的作用. 1)如果只是使用@RestController注解Controller,则Control ...