我尝试了很多方法来找到将 JSON 对象 (org.jooq) 转换为 java 对象 (pojo) 的方法。我正在使用 jOOQ 与数据库对话来开发 spring-boot 应用程序。
实际上我在数据库中有一个employee_details表,如下所示:
上表中有员工详细信息,该表中的 emp_address 列类型为 JSON 数据类型
现在我想从 id=X 的表中检索一个 employee_details,并且我尝试将详细信息存储在下面的 java 对象类 (POJO) 中。
EmployeeDetails 类:
@AllArgsConstructor
@NoArgsConstructor
@Data
public class EmployeeDetails {
private int id;
private String emp_name;
private String emp_email;
private String emp_mobile;
private EmployeeAddress emp_address;
}
EmployeeAddress 类:
@AllArgsConstructor
@NoArgsConstructor
@Data
public class EmployeeAddress {
private String hNo;
private String city;
private String pincode;
}
但是当我尝试从表中检索详细信息时,我将 emp_address(表中的 json 数据类型)存储在 Json(org.jooq) 中,如下所示。
EmployeeDetailsJSONJooQ 类:
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.jooq.JSON;
@AllArgsConstructor
@NoArgsConstructor
@Data
public class EmployeeDetailsJSONJooQ {
private int id;
private String emp_name;
private String emp_email;
private String emp_mobile;
private JSON emp_address;
}
在这里,我想检索 EmployeeDetails 对象中的员工详细信息,或者帮助我将 EmployeeDetails 对象转换为 EmployeeDetailsJSONJooQ 对象,或者如何使用 Mapstruct 映射这些对象。请帮帮我
最佳答案
如果您对如何将 JSON 映射到您的 POJO 不太有意见,那么将 Gson 或 Jackson 放在您的类路径上就足够了,jOOQ 会选择它并自动将 JSON 映射到您的 POJO,请参阅 this section of the manual about the ConverterProvider
.
例如这应该开箱即用:
List<EmployeeDetails> list =
ctx.selectFrom(EMPLOYEE_DETAILS)
.fetchInto(EmployeeDetails.class);
关于java - 如何将 JSON (org.jooq.JSON) 转换为 Java 对象 (POJO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70750733/