将实体对象或 POJO 返回到 UI?

用户3198603

我有 JPAEmployee持久实体 wjich 有 50 个字段。有时我需要向 UI 显示所有 50 个字段,有时甚至更少。

我能想到的有两种方法

方法一:-

我将继续将Employee实体返回到 UI。有一些方法(带注释)我可以提到Employee需要返回的特定字段

例子 :-

如果我想MiddleName在将 json 返回到浏览器之前忽略Employee 类,我将创建如下EmployeeMixin所需@JsonIgnoreProperties

@JsonIgnoreProperties({"MiddleName"})
public abstract class EmployeeMixin extends Employee{

}




Employee employee = new Employee ();
Map<Class<?>, Class<?>> mixinMap = new HashMap<Class<?>, Class<?>>();
mixinMap.put(Employee.class, EmployeeMixin.class);
ObjectMapper mapper = new ObjectMapper(mixinMap);
return mapper.writeValueAsString(employee);

方法2:-

我将再次创建包含所有 5o 字段的新 POJO 并返回到 UI。

我的问题是哪种设计方法更好?我应该将 Entity 对象还是新的 Pojo 对象(从 Entity 构造)返回到 UI ?

皮略

我更喜欢方法3,投影

  • DTO使用您需要的一组可变字段为每个案例创建一个对象。
  • 创建相应的JPQLCriteriaQuery填充适当的DTO.

有一个entity喜欢

@Entity
@Getter
public class Pojo3 {
   @Id
   @GeneratedValue
   private Long id;
   @Setter
   private String f1, f2,f3;
}

您可以创建一个DTO包含字段子集的类,例如

@Getter @Setter
@AllArgsConstructor // Pojo2DTO(id,f1,f2)
public class Pojo2DTO {
   private Long id;
   private String f1,f2;
}

可以JPQL像这个测试显示的那样填充

@Test
@Transactional
public void test() {
   Pojo3 pojo3 = new Pojo3();
   pojo3.setF1("f1");
   pojo3.setF2("f2");
   pojo3.setF3("f3");      
   em.persist(pojo3);

   // **NOTE** the full package path to DTO object
   TypedQuery<Pojo2DTO> tq = em.createQuery(
         "SELECT NEW org.example.jpa.manyfields.Pojo2DTO(p3.id, p3.f1, p3.f2) "
      + " FROM Pojo3 p3 WHERE p3.id=:id", Pojo2DTO.class);
   tq.setParameter("id", pojo3.getId());

   Pojo2DTO pojo2dto = tq.getSingleResult(); 
   log.info("{}, {}, {}", pojo2dto.getId(), pojo2dto.getF1(), pojo2dto.getF2());

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数据从C#返回到jQuery UI自动完成

来自分类Dev

业务层是否应该将持久对象返回到UI层?

来自分类Dev

如何将数据作为函数参数中的响应返回到对象(如jquery ui autocomplete)

来自分类Dev

UWP C#将UI对象返回到主线程上的同步扩展方法

来自分类Dev

如何将数据从HTML服务(UI)返回到Google电子表格

来自分类Dev

将Java列表返回到jQuery对象

来自分类Dev

将类的对象返回到主程序

来自分类Dev

如何将返回的对象转换为所需的bean / pojo

来自分类Dev

将对象返回到表单

来自分类Dev

将输入返回到段落

来自分类Dev

将Arraylist从Servlet返回到DAO,再返回到Servlet,然后返回到Jsp

来自分类Dev

将连接对象返回到HikariCP池的最佳方法

来自分类Dev

如何使用Java Servlet将JSON对象返回到AngularJS

来自分类Dev

如何应用将数据框返回到groupby对象的函数

来自分类Dev

将具有重复属性的对象返回到新数组

来自分类Dev

如何将更改的对象返回到下载它的组件?

来自分类Dev

将对象从类返回到表单

来自分类Dev

Redux Reducer不会将更新后的状态返回到UI

来自分类Dev

将JSON返回到GET请求

来自分类Dev

将剃刀视图返回到iframe

来自分类Dev

将UpdatePanel返回到默认状态

来自分类Dev

jQuery将函数返回到变量

来自分类Dev

将URL从回形针返回到JSON

来自分类Dev

将结果返回到Webview操作

来自分类Dev

将骆驼路线配置返回到xml

来自分类Dev

是否可以将数据返回到Dialogflow?

来自分类Dev

将查询/表返回到变量

来自分类Dev

将foreach值从函数返回到数组

来自分类Dev

将默认网格返回到表格ExcelPackage