用户定义类型属性路径
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
jOOQ的代码生成器支持用户定义的类型 (UDT),并为这些类型生成元数据、记录、POJO 和其他工件。
在 SQL 中解引用这些类型时,您可以按如下方式访问 org.jooq.UDTRecord
。假设使用 PostgreSQL 语法
CREATE TYPE country AS ( iso_code TEXT, description TEXT ); CREATE TYPE name AS ( first_name TEXT, last_name TEXT ); CREATE TYPE address AS ( street TEXT, number TEXT, zip TEXT, city TEXT, country COUNTRY ); CREATE TABLE customer ( id INT PRIMARY KEY, name NAME, address ADDRESS );
可以使用 jOOQ 按如下方式获取此数据
Record2<NameRecord, AddressRecord> result = create.select(CUSTOMER.NAME, CUSTOMER.ADDRESS) .from(CUSTOMER) .where(CUSTOMER.ID.eq(1)) .fetchOne(); System.out.println(result.value1().getFirstName()); System.out.println(result.value1().getLastName()); System.out.println(result.value2().getCountry().getIsoCode());
如果不需要获取整个 UDT,也可以直接在 SQL 中以类型安全的方式解引用单个属性!
Record3<String, String, String> result = create.select( CUSTOMER.NAME.FIRST_NAME, CUSTOMER.NAME.LAST_NAME, CUSTOMER.ADDRESS.COUNTRY.ISO_CODE) .from(CUSTOMER) .where(CUSTOMER.ID.eq(1)) .fetchOne(); System.out.println(result.value1()); System.out.println(result.value2()); System.out.println(result.value3());
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的声音!