用户定义类型属性路径
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
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());
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的声音!