无法在java中正确联接两个表;DTO

无法在java中正确联接两个表;DTO,java,join,dto,Java,Join,Dto,我对DTO很陌生, 在我的项目中,我有一个带有团队表(团队id,团队名称)和用户表(…,团队id)的数据库。关系:一个团队可以有很多用户。一个用户只属于一个团队。 在我的类中,我在用户实体中添加了一个Team-Team属性,并将Jpa注释加入到这两个实体中 @ManyToOne @JoinColumn(name = "id_team") private Team team; 当我从我的用户实体启动findall请求时,我得到一个带有团队对象的json响应 { .

我对DTO很陌生,
在我的项目中,我有一个带有团队表(团队id,团队名称)和用户表(…,团队id)的数据库。关系:一个团队可以有很多用户。一个用户只属于一个团队。 在我的类中,我在用户实体中添加了一个Team-Team属性,并将Jpa注释加入到这两个实体中

    @ManyToOne
    @JoinColumn(name = "id_team")
    private Team team;
当我从我的用户实体启动findall请求时,我得到一个带有团队对象的json响应

{
    ...
    "id_team": 1,
    "team": {
        "id": 1,
        "name": "team1"

    }
}
我的想法是在响应对象中只获取团队名称的一个名称,如下所示:

 {
    ...
    "id_team": 1,
    "team_name": "team1"

}
我尝试向我的用户类添加一个字符串属性,但它告诉我,这个属性没有引用任何列,这是合理的

等待你的建议
谢谢

您可以创建DTO类,例如UserDTO:

public class UserDTO {
    private String idTeam;
    private String team;

    public UserDTO(String idTeam, String team) {
        this.idTeam = idTeam;
        this.team = team;
    }

    /* getter and setter ommited */
}
然后,创建一个服务来检索数据并将其作为UserDTO返回

public UserDTO convertUser() {
   // The userService is an example.
   User user = userService.findAll();
   return new UserDTO(user.getIdTeam(), user.getTeam().getTeamName());
}

有了UserDTO,您将得到想要的JSON结果。

您可以创建DTO类,例如UserDTO:

public class UserDTO {
    private String idTeam;
    private String team;

    public UserDTO(String idTeam, String team) {
        this.idTeam = idTeam;
        this.team = team;
    }

    /* getter and setter ommited */
}
然后,创建一个服务来检索数据并将其作为UserDTO返回

public UserDTO convertUser() {
   // The userService is an example.
   User user = userService.findAll();
   return new UserDTO(user.getIdTeam(), user.getTeam().getTeamName());
}

使用UserDTO,您将获得您想要的JSON结果。

您可能需要使用
@JsonUnwrapped
@JsonView
您可以提供实体的完整代码以及如何查询它吗?谢谢。您可能需要使用
@JsonUnwrapped
@JsonView
您能否提供您实体的完整代码以及如何查询?谢谢。这个想法的可能重复是从我的用户实体获得响应,因为我的应用程序的角度部分与用户类通信!好吧,这是JPA的特点,它带来了所有的价值。抱歉,我所能想到的解决方案是:在将JSON响应发送到客户端之前,是使用DTO还是操纵JSON响应。您知道我如何从后面操纵JSON吗?取决于用于返回JSON响应的框架或库,这是一个使用JavaEEAPI中JSON-P的示例:其目的是从我的用户实体获取响应,因为我的应用程序的角度部分与用户类通信!好吧,这是JPA的特点,它带来了所有的价值。抱歉,我所能想到的解决方案是:在将JSON响应发送到客户端之前,是使用DTO还是操纵JSON响应。您知道我如何从后面操纵JSON吗?取决于用于返回JSON响应的框架或库,这是使用Java EE API中的JSON-P的示例: