03 2018 档案
摘要:@Component public class TenantMessageProcessor implements MessagePostProcessor { @Autowired private TenantIdentifierResolver currentTenantIdentifierRe
阅读全文
摘要:消息确认的几点说明: 1. Basic.Ack 发回给 RabbitMQ 以告知,可以将相应 message 从 RabbitMQ 的消息缓存中移除。2. Basic.Ack 未被 consumer 发回给 RabbitMQ 前出现了异常,RabbitMQ 发现与该 consumer 对应的连接被断
阅读全文
摘要:锁等待超时。是当前事务在等待其它事务释放锁资源造成的,默认参数:innodb_lock_wait_timeout设置锁等待的时间是50s,一旦数据库锁超过这个时间就会报错。 解决方案 第一种: 1.查询是否锁表 show OPEN TABLES where In_use > 0; 2.查询进程(如果
阅读全文
摘要:在Web开发中,最基本的都是从Controller到Service再到DAO。在开发的过程中,会需要处理各种异常。Service异常往上抛,如果上层没有try-catch,就会出异常。而通过ControllerAdvice 注解,我们可以使得所有异常在controller进行处理,而开发过程中更加专
阅读全文
摘要:json数据格式在接口调用中、html页面中比较常用,json格式比较简单,解析也比较方便,所以使用很普遍。在SpringMVC中,也支持对json数据的解析和转换,这篇文章主要总结一下在SpringMVC中如何和前台交互json数据。 两种交互形式 SpringMVC和前台交互主要有两种形式,如下
阅读全文
摘要:一:错误写法 String hql = " delete from T_ST_CircuitMeterInfo e where e.circuitID = ?"; Query query = em.createQuery(hql, T_ST_CircuitMeterInfo.class); quer
阅读全文
摘要:报错xception in thread "main" com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: '\xAC\xED\x00\x05sr\x00\x0Djava.time.Ser\x95]\x
阅读全文
摘要:/** * 只对一的一方执行save, 多的一方级联保存, 要满足两个条件 * 1. Many的一方负责建立关联关系 * 2. ONE的一方负责级联保存,需要将Many的一方的list设置到ONE的一方 */ @Transactional public void save() { OrderItem
阅读全文
摘要:1.JoinColumn注解不管在one方还是many方, 都是指定many方的外键, (或者说是主控方的外键)该外键名是db中的原始字段名 对比1和8 该注解一般是放在外键这个字段上 2. 只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne
阅读全文
摘要:@RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class JunitTest { @Autowired private P
阅读全文
摘要:WildCardQuery: 只要知道“*”表示0到多个字符,而使用“?”表示一个字符就行了:\ IndexSearcher searcher=new IndexSearcher(path); Term t1=new Term("content","?o*"); WildcardQuery quer
阅读全文
摘要:1. 多service嵌套, 事务以最外层为主, 只要任一层有异常抛出, 事务就会回滚, 也就是任一层sql都会回滚 2.如果设置某一层service屏蔽掉指定异常,不做回滚 (1) 最外层service 使用注解@Transactional(noRollbackFor=ShopCartLoseEx
阅读全文
摘要:List<Long> loseItems = itemRepository.getSale_OutItemIdIn(items); @Query(value= "SELECT id FROM item WHERE id IN ?1 AND sold_out =TRUE", nativeQuery=t
阅读全文
摘要:注意:hql,sql语句不会使用一级缓存 一、Hibernate中的对象状态 1.1、瞬时态(临时态) 没有与Hibernate产生关联 与数据库中的记录没有产生关联(有关联就是与数据库中表的id相对应) 获得:一般都只直接创建(new) 瞬时态 转换 持久态 一般操作:save方法、saveOrU
阅读全文
摘要:(其中,boolean,yes_no和 true_false对应Java中的java.lang.Boolean)。 映射类型 Java类型 标准SQL字段类型 integer int or java.lang.Integer INTEGER long long or java.lang.Long B
阅读全文
摘要:分2种情况情况1:当实体正在被容器管理时,你可以调用实体的set方法对数据进行修改,在容器决定flush时(这个由Container自行判断),更新的数据 才会同步到数据库,而不是在调用了set方法对数据进行修改后马上同步到数据库。如果你希望修改后的数据马上同步到数据库,你可以调用 EntityMa
阅读全文
摘要:理解eneityManager的这三个方法的作用和区别,首先需要分清楚PersistenceContext 和 EntityManager. PersistenceContext:是entity的一个实例。 EntityManager:是和PersistenceContext联系在一起的,被用来创建
阅读全文
摘要:执行查询时返回代理对象,这是懒加载。spring-data-jpa中对应getOne(); 如果数据库中没有对应的记录,抛异常。 注:这里spring-data-jpa又任性了,getOne()不是对应get(),注意。还有更任性的,如果对象在缓存中的话,那么getOne就会返回实体对象,否则返回代
阅读全文
摘要:@Test public void testPersistence(){ EntityManagerFactory factory; EntityManager manager; EntityTransaction transaction; factory = Persistence.createE
阅读全文
摘要:方法一:(可能会导致配置文件不能导入) 問題描述:spring boot引入到本地jar到项目(阿里云短信),使用maven package打包,出现以下异常 2017-07-29 00:07:43,822 ERROR SpringApplication:827 - Application star
阅读全文
摘要:1、autocommit是mysql中的InnoDb数据表特有的语句。(只有在表引擎=InnoDb时,autocommit才会生效) 原理:在InnoDb表中,所有的语句都是需要commit后,才会在真实数据库中生效。 eg: InnoDb数据库引擎 : update tablenam set id
阅读全文
摘要:MVCC的实现,是通过保存数据在某个时间点的快照来实现的. InnoDB的MVCC是通过在每行记录后面保存2个隐藏的列来实现的,一列保存了行的创建时间,一列保存了行的过期时间(或删除时间).但它们都存储的是系统版本号 MVCC最大的作用是: 实现了非阻塞的读操作,写操作也只锁定了必要的行. MYSQ
阅读全文
摘要:现象描述 测试中发现,服务A在得到了服务B的注册用户成功response以后,开始调用查询用户信息接口,却发现无法查询出任何结果。检查binlog发现,在查询请求之前,数据库确实已经完成了commit操作,并且可以在sqlyog等客户端工具中查询出正确的结果。 下面是这个流程的时序图: 问题出现在S
阅读全文