[英]How to typecast object data type in custom data type of fields in jooq/java
我能夠從數據庫中獲取數據,但是在插入相同的數據時,我收到了與錯誤語法異常相關的錯誤,這是由於數據類型不匹配而發生的。 讓我解釋清楚,有一個員工表,它有一個地址類型的字段,像這樣
crate table employee{
name varchar,
address Address[];
}
create type Address{
name,
pincode,
.....
}
因此,在從 db 獲取數據時,我得到的地址類型是 Object,因此能夠獲取數據,但是在使用 jooq 插入數據時出現錯誤,因為它是 object 類型,如果它是地址類型,那么我可以插入數據jooq 中有什么方法,所以我可以在 java 代碼中的地址類型中進行類型轉換。
我假設您沒有使用代碼生成? 但你應該! 尤其是當你使用用戶定義的類型時,jOOQ 真的很有幫助。 以下是您可以輕松地將數據插入表的方法:
AddressRecord[] addresses = {
new AddressRecord(name1, pincode1, ...),
new AddressRecord(name2, pincode2, ...)
};
ctx.insertInto(EMPLOYEE)
.columns(EMPLOYEE.NAME, EMPLOYEE.ADDRESS)
.values(empname, addresses) // All type safe!
.execute();
沒有魔法。 jOOQ 將生成所有必需的類型轉換,以確保您可以正確插入用戶定義類型的數組。 即cast(? as my_schema.address[])
。
請注意,在遙遠的過去曾經有一些與 UDT 類型的模式限定相關的錯誤,但這些應該在最近的版本中得到解決
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.