簡體   English   中英

如何在 jooq/java 中字段的自定義數據類型中對 object 數據類型進行類型轉換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM