J.J*_*eam 0 java spring spring-mvc spring-boot spring-restcontroller
从 @RestController 返回 @Entity 而不是 DTO 时是否有任何陷阱?像这样:
@RestController
public class EmployeeRestController {
@Autowired
private EmployeeRepository repository;
@GetMapping("/rest/employee/get/{id}")
public Employee getEmployeeByID(@PathVariable("id") int id) {
return repository.retrieve(id);
}
@Entity
public class Employee {
...
Run Code Online (Sandbox Code Playgroud)
我会说是的。通过返回一个实体,您将实现响应契约和数据库实体的紧密耦合。因此,将来如果您想修改您的响应/实体,您可能会遇到多个问题。例如,假设您的Employee实体有dateOfBirth字段,但您的客户希望您直接发送年龄。您必须修改Employee实体类并向其添加业务逻辑。因此,随着合同要求的变化,您的实体也会发生变化,这可能会导致多个问题。理想情况下,您将响应/请求契约与数据库实体解耦。但当然,一如既往,这取决于您认为代码的复杂程度。
| 归档时间: |
|
| 查看次数: |
994 次 |
| 最近记录: |