我想将简单查询的结果集映射到我的域对象,但是当我使用该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
提交
取消