//异常:Could not obtain transaction-synchronized Session for current thread
做定时器的时候用ApplicationContext的方法getBean("sessionFactory")获取sessionFactory;在获取getCurrentSession方法获取session,然后问题来了,直接报错:
openSession每次打开都是新的Session,所以多次获取的Session实例是不同的,并且需要人为的调用close方法进行Session关闭。
getCurrentSession是从当前上下文中获取Session并且会绑定到当前线程,第一次调用时会创建一个Session实例,如果该Session未关闭,后续多次获取的是同一个Session实例;事务提交或者回滚时会自动关闭Sesison,无需人工关闭。
getCurrentSession方法的确和事务有关系所有要有事物。 而在spring的事务实现中需要判断当前线程中的事务是否同步,而没有事务的时候,那个判断是否同步的方法会因为get返回初始的null值而返回false,
最终导致throw一个Could not obtain transaction-synchronized Session for current thread的异常.
异常:java.lang.Long cannot be cast to java.lang.String

强制转换没有用括号把转换的包起来

String sum = (String)query.setCacheable(true).list().get(0);//错

String sum = (Long)(query.setCacheable(true).list().get(0))+"";//正确
错误:Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name'
是在添加方法时报错,原因是数据库或表的编码不对
//错误为查询的时候错误,原因为hibernate进行了一对多关联查询,而数据库中的有脏数据,导致关联查询失败
//jar包版本不同,引入驱动位置不同,配置写错
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'beetlSqlScannerConfigurer' defined in class path resource [com/ibeetl/starter/BeetlSqlConfig.class]: Unsatisfied dependency expressed through method 'getBeetlSqlScannerConfigurer' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlManagerFactoryBean' defined in class path resource [com/ibeetl/starter/BeetlSqlConfig.class]: Unsatisfied dependency expressed through method 'getSqlManagerFactoryBean' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/bw/core/conf/DataSourceConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'datasource' threw exception; nested exception is java.lang.RuntimeException: Failed to load driver class com.mysql.cj.jdbc.Driver in either of HikariConfig class loader or Thread context classloader

在做自定义标签的时候出现错误,告诉我在该类中找不到该方法。解:.xml文件中配置错误,方法传递的参数类型是Integer,而java代码中接受的是int,参数类型不一样,所以找不到该方法。

在新建了一张表,用代码完成了生成,在执行插入的时候,报错告诉我没法进行插入处理,最后解决错误为使用了MySQL的关键字作为了数据库字段,而没法进行添加到数据库。

05-28 22:17