ORM
正怒月神
炒鸡!软件攻城狮
展开
-
springmvc 多事务提交和回滚
- 配置ChainedTransactionManager -->相关方法都记得加上@Transactional。原创 2024-06-14 14:17:12 · 462 阅读 · 0 评论 -
JPA Example 默认 join
主表:BoBookingorder关联表:BoJobcontainerinfo。原创 2024-04-24 16:24:43 · 181 阅读 · 0 评论 -
jpa 连接sqlserver 发布tomcat报错 SunJSSE
【代码】jpa 连接sqlserver 发布tomcat报错。原创 2023-10-20 16:56:36 · 354 阅读 · 0 评论 -
JPA 使用@query 时,判断数组
但如果a参数是一个数组a=[1,2,3],怎么办?ifnull会变成ifnull(1,2,3,'')=''一般如果使用@query时,原创 2023-04-28 18:33:18 · 901 阅读 · 1 评论 -
springmvc jpa 多数据源
本次使用Mysql 和 sqlServer。原创 2023-04-28 15:59:58 · 753 阅读 · 3 评论 -
解决org.hibernate.LazyInitializationException的正确姿势
业务很简单,一个jpa的单表查询,获取属性的时候报错了。转载 2023-04-04 17:48:07 · 567 阅读 · 0 评论 -
JPA 懒加载(循环引用,N+1,使用关联对象,No session问题)(二)
可以看到,满足了Lazy (循环引用,N+1,使用关联对象)的功能。1 使用jackson-datatype-hibernate5 配置 WebMvcConfig 解决懒加载的序列化问题。2 使用@Fetch(FetchMode.SUBSELECT) 解决N+1问题3 使用@JsonIgnoreProperties(value = { "users" }) 避免循环引用。原创 2023-04-03 17:21:52 · 1326 阅读 · 0 评论 -
JPA Page 通过RestTemplate传递
构造实现类(因为PageImpl没有构造函数,所以自带的PageImpl无法使用)原创 2023-03-23 13:48:34 · 138 阅读 · 0 评论 -
jpa 循环引用
JsonIgnoreProperties(value = { "users" }) //users代表EScene中的users对象。@JsonIgnoreProperties(value = { "senes" }) //senes代表User中的senes对象。循环引用就是:A中有B,B中有A。一查询,就无限递归了。现在给出解决方案(以及我认为,最好的方案。直接忽略对象,简单粗暴,变成单项关联了。简单粗暴,直接从数据库映射了。这是jackson的注解。原创 2023-03-13 10:59:27 · 342 阅读 · 0 评论 -
mybatis plus 执行sql
废话不多。mapper@Select("${sqlStr}") List<MyTest> dynamicSql(@Param("sqlStr")String sql);测试@Autowired MyTestMapper myTestMapper; @Test public void DynamicSql() { String sql="select * from myTest"; List<MyT原创 2021-12-08 17:55:26 · 6437 阅读 · 0 评论 -
JPA 懒加载问题
的实体中用到了多对一,一对多的映射关系,在加载这个实体对象的时候,因为JPA的懒加载特效会导致触发N+1的问题,通常1的这方是通过1条SQL查找得到的1个对象或1个集合,由于关联的存在 ,又需要将这个对象(或集合)关联的集合取出,1这方的集合数量是N,则要发出N条SQL,于是本来的1条联表查询SQL可解决的问题变成了N+1条SQL。可以看到执行的sql一共打印了3条sql,第1条sql查询出所有的根菜单,第2和第3条则是根据根菜单的Id去查询对应的子菜单信息。转载 2023-03-03 10:42:26 · 520 阅读 · 0 评论 -
JPA 懒加载 无效
.setMenuName("系统管理")转载 2023-03-03 10:35:35 · 306 阅读 · 0 评论 -
SpringMVC 项目中 创建SpringBoot,使用Hibernate和JPA
起因:老项目是SpringMVC,为了之后能使用更方便的SpringBoot。所以在其中添加了SpringBoot项目,但是老项目SpringMVC使用的Hibernate,SpringBoot希望使用JPA。原创 2022-11-30 13:56:42 · 650 阅读 · 1 评论 -
Could not obtain transaction-synchronized Session for current thread
我的项目中,发生这个错误是由于我使用springmvc框架,但是在里面新建了一个 springboot的camunda(流程)模块。而springmvc使用hibernate,camunda使用jpa的entityManager。在service中,添加@Transactional以代码为例:原创 2022-11-17 10:27:41 · 350 阅读 · 0 评论 -
SpringMVC 项目中 创建SpringBoot后,引起的No bean named ‘xxx‘ available
但是我的yml中并没有配置关于hibernate的相关配置(主要配置Transaction,不然无法增删改查,下面也会写到配置中)。原因是我在springmvc中添加了springboot项目,我是sessionFactory 报错。原创 2022-11-14 18:17:47 · 1434 阅读 · 0 评论 -
JPA EntityManager 获取关联对象
毫无疑问,很有信心,Example可以关联到对象。事实也是这样。但是Example好像只有and关系。这有点变扭。@Autowired@Test}Example :可以关联对象,但是语法上只有AndEntityManager :可以关联对象,语法灵活。EntityManager(Transformers.aliasToBean) :无法关联对象,语法灵活。@Query注解 :可以关联对象,sql无法动态传递。原创 2022-10-12 17:00:32 · 679 阅读 · 0 评论 -
cannot be cast to java.util.Map
在使用Transformers.aliasToBean 进行映射时,modelVO必须首字母小写!而且还是让人很疑惑的错误。特别记一下,对象的字段,首字母小写!原创 2022-09-22 18:37:33 · 1170 阅读 · 0 评论 -
JPA 打印sql带参数
之前JPA打印sql时,sql和参数分开,使用起来很不方便。后来看了网上的方式,成功的把sql和参数合并了。转载 2022-09-13 11:54:52 · 1089 阅读 · 0 评论 -
Jpa Hql
代码】Jpa Hql。原创 2022-08-17 10:15:31 · 135 阅读 · 0 评论 -
springboot 连接 postgresql
一,JPA 方式POM<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <gro原创 2022-05-26 10:27:30 · 8145 阅读 · 0 评论 -
EntityManager 使用 Pageable 分页
参考:https://blog.csdn.net/qq_43948440/article/details/110877496一,通用方法/** * 无参查询,sql语句 * @param querySql sql * @param pageable Pageable.unpaged() 代表不分页 * @param destType 需要映射的类型 * @param <U> * @return */原创 2021-08-27 13:44:51 · 2167 阅读 · 5 评论 -
jpa 映射 mysql json 对象
测试数据:其中,tagIDList为json类型[{"tagID": "1", "tagName": "tag1"}, {"tagID": "2", "tagName": "tag2"}]那我们怎么通过jpa映射呢?一,添加依赖<!-- https://mvnrepository.com/artifact/com.vladmihalcea/hibernate-types-52 --><dependency> <groupId>c.原创 2021-08-03 14:29:43 · 3810 阅读 · 0 评论 -
EntityManager 获取 List<T>
代码很简单,大家看一下就好了@Override public List<EntityVO> findMachineToPlan(Integer age) { String sql="select * from Test where age=:age"; Query query = em.createNativeQuery(sql); query.setParameter("age", age); query.unwr原创 2021-07-22 10:53:28 · 349 阅读 · 0 评论 -
JPA Pageable 无法分页问题
每个人情况不一样。首先,我使用了最新的spring boot版本<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.0</version> </parent>原创 2021-07-19 14:39:00 · 895 阅读 · 4 评论 -
jpa 中 page转换
其实很简单Page分页对象提供了一个map方法,用来转换Page内部对象//获取数据 Page<A> alist=......;//转换 Page<B> resList=mList.map(x->{ B r=new B(); r.setId(x.Id()); ....... })如果你使用Dozer,那么可以直接//获取数据原创 2021-07-06 10:20:13 · 2037 阅读 · 0 评论 -
JPA 传入Date 查询为空
百思不得其解。。。按照网上教程,都试过了。但是总不对。后来我通过navicat ,监控日志,faxian原创 2021-06-07 16:02:43 · 441 阅读 · 0 评论 -
no transaction is in progress
主要:<prop key="hibernate.allow_update_outside_transaction">true</prop><?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ..原创 2021-04-13 18:05:15 · 3144 阅读 · 0 评论 -
@Transactional 新增记录失败
情况是这样的:我在add方法中,还有一个updateBalance减库存方法。serviceImpl是这样的//尽量简单演示//新增@Transactional @Override public T add() { }//减库存@Transactional @Override public T updateBalance() { }//调用上面2个方法@Transactional @原创 2020-09-30 13:55:03 · 393 阅读 · 0 评论 -
EF Core 关联数据
开发环境ASP.NET Core 3.0 + Entity Framework 3.0正文Entity Framework Core 通过实体类的导航属性来加载相关数据。有三种常见的方式:预先加载- 将关联数据作为查询的一部分一起查询出来。显示加载- 查询主数据之后,再从数据库查询相关数据。延迟加载- 在访问导航属性的时候,再从数据库查询相关数据。预先加载预先加载又叫贪婪加载,使用Include方法来指定需要查询的相关数据。如下所示:using (var cont...转载 2020-09-24 11:45:54 · 577 阅读 · 1 评论 -
ef 仓储模式(异步)
Interface:using System;using System.Collections.Generic;using System.Linq;using System.Linq.Expressions;using System.Threading.Tasks;using Webdiyer.AspNetCore;namespace DiveCRM.Web.DAL.Base{ public interface IBaseRepositoryAsync<T>原创 2020-09-15 14:35:46 · 615 阅读 · 0 评论 -
jpa 查询 带下划线
添加jpa策略spring: jpa: hibernate: naming: physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl database: mysql两种策略的含义://1.PhysicalNamingStrategyStandardImpl:不做修改,直接映射spring.jpa.原创 2020-09-09 14:21:32 · 1199 阅读 · 0 评论 -
IDEA Mysql 生成 Model(二)
一,创建连接如果报错Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezon记得选择Driver: MySQL for 5.1二,生成点击Generate POJOs 后,选择文件夹。就可以了。三,记得修改一下属性的类型:Integer,DateTime,BigDecimal 注意一下...原创 2020-06-16 13:45:27 · 1610 阅读 · 0 评论 -
JPA @Query ERROR. token : WHERE
在使用中,发现了一个JPA的bug。错误:ERROR. token : WHERE我在Dao层,使用@Query时,使用了jpa的Pageable分页。@Query(value = "select * from Order where refSONo=:refSONo and IsValid = 1 /*#pageable*/", nativeQuery = true) Page<Order> findPagedList(@Param("refSONo") Strin.原创 2020-06-09 12:09:57 · 736 阅读 · 0 评论 -
springmvc + Hibernate + JPA (混合事务)
最近发觉 spring-data-jpa 比较好用。我在springcloud的项目中使用后,也尝试在springmvc中增加 jpa。一,创建moudle选择父项目,设定子项目名。二,创建文件夹创建文件夹,并且转换文件夹类型三,创建测试文件在对应的java目录下,创建包和controller我的包路径com.kintech...原创 2020-04-21 15:01:36 · 1444 阅读 · 1 评论 -
spring cloud 搭建(多JPA,JPA分页)
随着项目的迭代。我们在老项目中,把service和dao都放在相同module下,已经不合适了。service和dao越来越臃肿。如下所示我们就开始认为每个微服务,都拥有自己的model,dao,service。而上图的module只是充当基类存在的使用。这个时候JPA就会变成多个。那么我们需要如何配置呢?...原创 2020-04-16 14:30:12 · 264 阅读 · 0 评论 -
spring cloud 搭建(事务)
今天我们说一下,如何开启事务。之前,我们在JpaConfiguration中配置了事务开启。详见:https://blog.csdn.net/hanjun0612/article/details/105239557如果没有开启事务,会报错:Executing an update/delete query一,Dao事务其中有这一段,代表了Dao事务开启。@Ena...原创 2020-04-13 17:58:30 · 491 阅读 · 0 评论 -
spring cloud 搭建(JPA数据访问)
一,创建三层架构首先,创建 model(实体层),dao(数据访问层),service(业务层)都是如下方式:如果创建的Moudel右键没有 Maven选项,则通过如下“+”号处理二,mysql新增表user表对应的model层使用了Lombok的@Data注解,省去get;set;@Datapublic class Use...原创 2020-04-03 11:08:48 · 2283 阅读 · 0 评论 -
Code First 重复外键(简单方法)
之前有说过 Code First 重复外键 的一种解决方案。 http://blog.csdn.net/hanjun0612/article/details/50478134虽然可以解决问题,不过我觉得配置起来非常麻烦,特别时多个表,多个外键的时候。今天介绍一个简单的方案 数据库表结构: 采用 [InverseProperty("")] 特性来表明外键关系。...原创 2016-10-17 14:50:41 · 3088 阅读 · 0 评论 -
Code First NotMapped
转载:http://www.cnblogs.com/libingql/p/3352058.html不需要映射的字段,添加 NotMapped6、非数据库字段属性 在类中,如果有一些属性不需要映射到对应生成的数据表中,可以通过以下方式设置。6.1 Data Annotation方式[NotMapped]public string Remark转载 2016-02-04 15:49:27 · 636 阅读 · 0 评论 -
ef 更新数据库
//一:数据库不存在时重新创建数据库Database.SetInitializer(new CreateDatabaseIfNotExists()); //二:每次启动应用程序时创建数据库 Database.SetInitializer(new DropCreateDatabaseAlways());//三:模型更改时重新创建数据库 Database.SetInitializ原创 2017-04-01 10:50:41 · 4313 阅读 · 0 评论