jack_zhang
jack_zhang
 
## 作者你好,我看了你的书,有几个问题,想咨询一下 1、Spring Jpa data中的配置比较复杂,尤其是关联关系,容易出错。有没有工具可以自动生成这些配置。在网上看到的,大部分是Mybatis的自动生成工具,也有少量的jpa的自动生成工具,但是都没有针对配置关系的生成工具? 有:IDEA就可以做到;参考: https://gitbook.cn/new/gitchat/activity/5a5405edf6e6d01dea2d5e23 2、Spring Data Jpa 与JPA+hibernate 现在哪个更容易在项目中使用? 我们公司所有项目都是JPA,没有什么区分,就看你掌握的熟悉不熟悉; 3、事务的传播,如果A,与B的事务配置属性不一样,那么传播的会选择事务的并集合还是交集还是忽略后面的事务? 这看你的事务的传播机制怎么设置的呀,建议详细了解一下spring的事务7种传播机制; 4、在一个方法中,Mybatis与Spring Jpa data共用的时候,会采用哪个事务?JPA的一级缓存是否要手动flush? 1)建议不要混用,都微服务化了,为什么要混用? 2)即使混用,事务时spring管理的和Mybatis和JPA有什么关系呢?看你的每个方法上的事务传播机制的设置有关系呀; 3)个人认为不需要;原理可以仔细看下老师拉钩上的文章(21章和28章):https://kaiwu.lagou.com/course/courseInfo.htm?courseId=490&sid=20-h5Url-0&buyFrom=2&pageId=1pz4#/detail/pc?id=4721 5、如果在企业的信息管理系统中,数据表有100多张。如发票到账,分包等。这些表之间有关系,如果在对象层面也建立这些对象的双向关系,是否会导致在flush的时候,冲突的概念会很高,因为每次flush的时候,要对比所有关联的对象的状态变化,然后可能会更新多个表? 1)如果早期对关联关系不熟悉,建议不要建关联关系,和mybatis的思路一样,就是普通的单表对象,自己做关联查询; 2)即使配置了关联关系,也可以通过设置CascadeType不做级联更新;详细推荐看老师拉钩上的第07章:https://kaiwu.lagou.com/course/courseInfo.htm?courseId=490&sid=20-h5Url-0&buyFrom=2&pageId=1pz4#/detail/pc?id=4707 6、针对历史库的脏数据检查 有一些历史库,因为没有建立数据库层面的约束关系,由应用程序来维护数据的约束关系。性能上提高了,但是数据一致性会存在问题。(ps:有什么关系呢?) 现在希望通过JPA建立关系,通过一系列规则类。(这些规则类,可采用策略模式或责任链模式进行组合),来找出脏数据具体的条目。 如,在子表中,逻辑外键为null。或子表中逻辑外键,不在主表中的等。 针对这个规则,读数据库中的表,然后运行这个规则进行检测。 JPA有这样的应用场景吗?...

## see https://www.baeldung.com/jpa-persisting-enums-in-jpa 1. Introduction In JPA version 2.0 and below, there's no convenient way to map Enum values to a database column. Each option has its limitations and drawbacks....
https://persistence.blazebit.com/documentation/1.5/core/manual/en_US/index.html
大字段类型
5.2.11 @Lob 将属性映射成数据库支持的大对象类型。支持以下两种数据库类型的字段。 1. Clob(Character Large Ojects)类型是长字符串类型,java.sql.Clob、Character[]、char[] 和 String 将被映射为 Clob 类型。 2. Blob(Binary Large Objects)类型是字节类型,java.sql.Blob、Byte[]、byte[] 和 实现了Serializable接口的类型将被映射为 Blob 类型。 3. 由于Clob,Blob占用内存空间较大一般配合@Basic(fetch=FetchType.LAZY)将其设置为延迟加载 ```` // clob @Lob @Column(columnDefinition = "Clob") public...
see: https://github.com/zhangzhenhuajack/spring-data-jpa-guide/wiki/implement-equals,-hashCode-why,when%3F
3.1 :  Repository -----------------------华丽分界线----------------------- 3.6.2.1 :  t'ry catch -----------------------华丽分界线-----------------------
《Spring Data JPA从入门到精通》购买地址: 天猫: https://s.click.taobao.com/OsToiQw 当当:http://product.dangdang.com/1295191369.html 京东:https://item.jd.com/12350823.html  本书初衷 随着Java技术和微服务技术逐渐广泛应用,Spring Cloud、Spring Boot逐渐统一Java的框架江湖。市场上的ORM框架也逐渐被人重视起来。Spring Data逐渐走入Java开发者的视野,被很多架构师作为ORM框架的技术选型。市场上没有对Spring Data JPA的完整介绍。资料比较零散,很难一下子全面、深入地掌握Spring Data JPA。本书注重从实际出发来提高从事Java开发者的工作效率,可以作为一本很好的自我学习手册和Spring Data JPA的查阅手册。“不仅授之以鱼,还授之以渔”,不仅告诉大家是什么、怎么用,还告诉大家学习步骤、怎么学习,以及原理、使用技巧与实践。全书以Spring Boot为技术基础,从入门到精通,由浅入深地介绍和使用Spring Data JPA,很适合Java的初学者从此弯道超车,走上Spring全家桶学习的快车道。 “未来已经来临,只是尚未流行” 纵观市场上的ORM框架,MyBitas以灵活著称,但是要维护复杂的配置,并且不是Spring官方的天然全家桶,还得做额外的配置工作,即使是资深的架构师也得做很多封装;Hibernate以HQL和关系映射著称,但是使用起来不是特别灵活。这样Spring Data JPA来了,感觉要夺取ORM的JPA霸主地位了,它底层以Hibernate为封装,对外提供了超级灵活的使用接口,又非常符合面向对象和REST的风格,越来越多的API层面的封装都是以Spring Data JPA为基础的,感觉是架构师和开发者的福音。Spring Data JPA与Spring...