我到处寻找解决方案。如果这不是正确的地方原谅我,但在这里它... ...
我正在使用jTDS 1.3.1和SQL server 2014.我准备了一个只读,可滚动的语句。查询中等复杂:
SELECT "equipmentid","locationid","vendorid","mfg","equipmentdescription","qty","cost","paymentdate" FROM "farnam"."Equipment" e0 LEFT JOIN "farnam"."Acceptance" e1 ON e0."currentcofa" = e1."cofaid" LEFT JOIN "farnam"."PaymentHistory" e2 ON e0."equipmentinvoiceid" = e2."parentinvoiceid" WHERE ("category" = ? AND "status" = ?)
它是三个表的左连接。两个参数可以是任何东西,即[1,1]。
如果尝试调用PrepraredStatement.execute()
它会返回,但下一次调用是提交或其他执行在readFully
方法期间挂起。
现在,如果我只是在查询字符串中附加一个空格,它就不会挂起。如果我每次都向我的所有查询添加一个空格,那么它会再次挂起,但是对于具有不同字符串长度的不同情况(即通过添加let paymentdate>'2015-10-19'
)。
MS jdbc驱动程序没有此问题(所有查询都通过)。我不使用任何连接池,我只是获得连接,然后执行准备然后执行。
有没有人经历过这样的事情,如果一个人偏向jTDS可以做些什么。