(它類似于這個,但這次它知道是POSTGRES。)
我有一個UpdateQuery:
val uq = kontxt.updateQuery(table("felhaszn"/span>)
uq.addValue(field("kilepett"), null as Timestamp?
并且生成(println(uq.getSQL())):
update felhaszn set /*. = cast(? as varchar) /*...*/
為什么是varchar?
在uq.execute()它拋出了一個
ERROR。列"kilepett" 是 of type timeestamp without 時間區,但運算式是 of type character變化的
而println(uq.toString())的輸出顯示了正確的SQL。所以我可以通過kontxt.query(uq.toString()).execute()來解決這個問題,而不僅僅是uq.execute()。
uj5u.com熱心網友回復:
如果你使用代碼生成器,這種情況就不會發生,在這種情況下,你會在你的列上附加型別資訊,而jOOQ可以系結正確的型別:
val uq = kontxt.updateQuery(FELHASZN)
uq.addValue(FELHASZN.KILEPETT, null as Timestamp?)
你對Timestamp?的投遞在這里沒有幫助,因為該型別資訊在運行時并沒有被JVM維護。null參考沒有型別,而你的field("kilepett")也沒有附加任何型別資訊(它是一個Field<Object?>/code>)。如果由于某種原因,你不能使用代碼生成器(我強烈建議你這樣做!),你將不得不明確地附加這些資訊:
<
uq.addValue(field("kilepett", SQLDataType.TIMESTAMP), null as Timestamp?)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/307986.html
標籤:
上一篇:SQL和可選排序ASC/DESC
