我想將簡單查詢的結果集映射到我的域對象,但是當我使用該into()方法時,某些屬性只是nullResult<DepartmentRecord> fetch = dsl.selectFrom(DEPARTMENT).fetch();List<Department> collect = fetch.stream().map(f -> new Department(f.getId(), f.getName())).collect(Collectors.toList());System.out.println("collect: " + collect);// WORKS// prints: collect: [Department [id=1, name=Mooh], Department [id=2, name=Mooh2]] List<Department> into = fetch.into(Department.class);System.out.println("into: " + into);// DOESN'T WORK: name is null// prints: into: [Department [id=1, name=null], Department [id=2, name=null]]這是我的域對象/JPA 實體:@Entity@Data@AllArgsConstructor@NoArgsConstructorpublic class Department { @Id @GeneratedValue private int id; private String name;}我做錯了什么?使用 Spring Boot 2.1.8、jOOQ 3.11.0、OpenJDK 11
1 回答

MMTTMM
TA貢獻1869條經驗 獲得超4個贊
因為您有一個默認構造函數,并且屬性的名稱是 dname,但我假設數據庫列名稱不同(例如名稱)。
如果默認構造函數可用并且沒有 JPA 列注釋,或者 jOOQ 在類路徑上找不到 javax.persistence API,jOOQ 將通過命名約定映射 Record 值:
添加回答
舉報
0/150
提交
取消