问题描述
我有一个简单的spring boot应用程序,我的模型包含3个字段。控制器公开2个端点/ e1和/ e2。我想要实现的是,当调用/ e1时,我想从模型中返回所有3个字段,而当调用/ e2时,我只返回2个字段,并从中隐藏第3个字段。
有没有一种方法可以做到这一点?谢谢
解决方法
首先,您应该始终有2个类-实体及其dto表示形式-即使它们的字段非常相似。这给您:
- 独立于外部消费者,您将来可能会更改型号,但合同保持不变
- 利用Hiberante懒散加载优势的机会
- 轻松解决您的问题:只有2个DTO,一个DTO具有所有字段,另一个DTO没有隐藏字段。
您可能需要bean mapper才能将实体转换为DTO。
,您可以尝试其中两种解决方案..
- 创建两个POJO,其中一个包含3个字段,另一个包含2个字段,并相应地返回。
- 如果您不想单独使用pojo,请在pojo中设置所有3个字段的值,并在/ e2调用时对其进行迭代,并显式地清空要隐藏的值。