Spring data jpa + sqlserver + druid, druid连接sqlserver 报错:查询超时值 -1 无效。

druid连接sqlserver 报错:

ERROR com.alibaba.druid.pool.DruidDataSource Line:2453 - create connection SQLException, url: jdbc:sqlserver://localhost:1433;databaseName=datasy, errorCode 0, state null
com.microsoft.sqlserver.jdbc.SQLServerException: 查询超时值 -1 无效。
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:170)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.setQueryTimeout(SQLServerStatement.java:987)
	at com.alibaba.druid.pool.vendor.MSSQLValidConnectionChecker.isValidConnection(MSSQLValidConnectionChecker.java:47)
	at com.alibaba.druid.pool.DruidAbstractDataSource.validateConnection(DruidAbstractDataSource.java:1307)
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1588)
	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2450)

测试发现是德鲁伊版本问题,我是用的是1.1.6版本。

解决办法: 我测试了其他版本: 1.0.29、1.1.5、1.1.6、 1.1.7、 1.1.8、 1.1.9

有问题的有1.1.6 和 1.1.7版本。


  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
你可以使用Spring Data JPA提供的查询方法来实现根据中间表中的某个数据查询中间表的功能。假设有两个实体类A和B,它们之间通过中间表C进行关联。 首先,你需要在实体类A中定义与中间表C的关联关系。可以使用@ManyToMany注解来表示多对多关系,同时指定中间表的名称和外键列名。例如: ```java @Entity public class A { // ... @ManyToMany @JoinTable( name = "C", joinColumns = @JoinColumn(name = "a_id"), inverseJoinColumns = @JoinColumn(name = "b_id") ) private List<B> bs; // getters and setters } ``` 然后,在实体类B中也需要定义与中间表C的关联关系,与实体类A类似。例如: ```java @Entity public class B { // ... @ManyToMany(mappedBy = "bs") private List<A> as; // getters and setters } ``` 接下来,你可以在Spring Data JPA的Repository接口中定义查询方法。可以通过在方法名中使用特定的关键字来指定查询条件。假设你要根据中间表C中的某个数据查询中间表,可以编写一个查询方法,例如: ```java @Repository public interface CRepository extends JpaRepository<C, Long> { List<C> findByData(String data); } ``` 在上述示例中,findByData方法会根据给定的data在中间表C中进行查询,并返回符合条件的C对象列表。 最后,你可以在Spring Boot应用程序中使用CRepository来执行查询操作。可以通过注入CRepository实例,并调用其定义的查询方法来实现根据中间表中的某个数据查询中间表的功能。 ```java @Service public class MyService { @Autowired private CRepository cRepository; public List<C> findCsByData(String data) { return cRepository.findByData(data); } } ``` 以上是基于Spring Data JPASpring Boot的实现方式,希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值