貌似大巴黎把8月10号也就是明天的埃菲尔铁塔的包下来了,签约梅西应该十拿九稳了。
梅西+姆巴佩+内马尔+迪马利亚,这波是宇宙飞船
谢希科的论文才写了一半,公司的业务挣扎中,
今天先写完词典管理吧
有nativeQuery = true时,是可以执行原生sql语句,所谓原生sql,也就是说这段sql拷贝到数据库中,然后把参数值给一下就能运行了
热搜统计:
说明
1、默认统计各个频道下最近一个月相关搜索标的的排名和搜索量,推荐开关默认都是开启的
2、关闭推荐按钮,则此标的不会被推荐到热搜栏位
3、标的可能存在同名的,可以通过ID区分
4、再推荐到H5的热搜栏位时,如果热搜配置中,经配置了重名的标的,则取热搜统计中后一位的标的名称
5、如果所有的热搜标的都关闭了推荐,则只显示热搜配置里面配置的标的,如果热搜配置里面也没有配置,则整个H5上整个热搜板块都不显示
1 |
|
level=?1 相当于把sql的第一个参数传入后面的update函数
反射不支持基本类型
JpaRepository 接口的三个父接口中,CrudRepository 接口定义了最基本的 CRUD 方法;
PagingAndSortingRepository 接口定义了分页和排序要用到的方法;
QueryByExampleExecutor 接口定义的是按实例进行查询的方法。
(2)JpaSpecificationExecutor 接口:自定义查询的接口
比如模糊查询、表关联查询等都通过它来完成,业务接口 CfgPhysicalDbRepository 同样实现了它,我们在代码中调用的 findAll(Specification
(3)SimpleJpaRepository 类:常用 CRUD 方法的真正实现类
当业务接口 CfgPhysicalDbRepository 调用 JpaRepository 接口中的 CRUD 方法,或者 JpaSpecificationExecutor 接口中的 findAll 方法时,
应该有一个业务实现类 CfgPhysicalDbRepositoryImpl 来实现这些方法,
所以我们可以在同一个包下定义一个实现类 CfgPhysicalDbRepositoryImpl 来重写这些方法。
但是我们很少看见有人这样写,这样写就是和普通的 Dao、DaoImpl 没有两样了。
JPA 有它自己的玩法,这些常用的方法, JPA 都通过接口定义好并且在 SimpleJpaRepository 中替你一一实现了,
所以说当代码执行找不到 CfgPhysicalDbRepositoryImpl 的时候,就会一直向下找,
最终找到 SimpleJpaRepository 中的实现方法为止,此处是一个委派模式。
2、详解 SimpleJpaRepository 的 findAll(Specification
(1)JPA的复杂查询都必须经历四个步骤:
1、获取 builder => CriteriaBuilder builder = em.getCriteriaBuilder();
2、获取 Query =>CriteriaQuery
3、在 Query 中构造查询条件 => Predicate predicate = spec.toPredicate(root, query, builder);
4、执行查询 => query.getResultList()
我们只需要在方法的参数中直接定义一个pageable类型的参数,当Spring发现这个参数时,Spring会自动的根据request的参数来组装该pageable对象
Spring支持的request参数如下:
page,第几页,从0开始,默认为第0页
size,每一页的大小,默认为20
sort,排序相关的信息,例如sort=firstname&sort=lastname,desc表示在按firstname正序排列基础上按lastname倒序排列
1 | rollbackFor = Exception.class |
一个注解@Transactional(rollbackFor = Exception.class),今天就和大家分享一下,这个注解的用法;
异常
如下图所示,我们都知道Exception分为运行时异常RuntimeException和非运行时异常
error是一定会回滚的
如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。
如果不想终止,则必须捕获所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理。
非运行时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类。如IOException、SQLException等以及用户自定义的Exception异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch并处理,否则程序就不能编译通过。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。
使用说明
当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该标注来覆盖类级别的定义。
在项目中,@Transactional(rollbackFor=Exception.class),如果类加了这个注解,那么这个类里面的方法抛出异常,就会回滚,数据库里面的数据也会回滚。
在@Transactional注解中如果不配置rollbackFor属性,那么事物只会在遇到RuntimeException的时候才会回滚,加上rollbackFor=Exception.class,可以让事物在遇到非运行时异常时也回滚
数据库如果不是从1自增,可以把表内数据都删了。
本地测试没问题,前端那边测试有问题肯定要么事仓库代码没更新,要么是部署没更新。
改数据,请求能成功,但是数据库没反应,是sql语句的表名复制粘贴没改过来