sharp-database中的BaseDAOImpl实体中有POJO属性/List POJO/List Map使用Json存储

环境准备

Address.java

@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Address implements JsonStringToObjectConverterFactory.JsonValue {

    private String code;

    private String detail;

}
  • 实现接口 JsonStringToObjectConverterFactory.JsonValue 表示反序列化的时候,底层使用JsonUtils.toObject()

Project.java

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Project {

    @Id
    private Long id;

    private Address address;

    private List<Address> list;

}

测试

@Test
public void testSave() {
    Project project = new Project();

    project.setAddress(Address.builder().code("001").detail("苏州").build());
    project.setList(Lists.newArrayList(Address.builder().code("001").detail("苏州").build()));

    projectDAO.insert(project);
    Assert.assertNotNull(project.getId());
}

@Test
 public void testFindById() {
     Optional<Project> optional = projectDAO.selectById(479411923147194368L);
     Project project = optional.get();
     Assert.assertEquals("001", project.getAddress().getCode());
     Assert.assertEquals("001", project.getList().get(0).getCode());
}