Java 如何使用JoinColumnn仅选择几个要显示的数据

Java 如何使用JoinColumnn仅选择几个要显示的数据,java,spring,spring-data-jpa,relational-database,joincolumn,Java,Spring,Spring Data Jpa,Relational Database,Joincolumn,在SpringJava中,尤其是在JoinColumn中,如果我们使用JoinColumn,例如JoinColumn(name=“guest\u id”)。然后将显示所有来宾数据。而我只想检索一个数据,这是唯一的名称 @Column(name = "guest_id") private Integer guestId; @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "guest_id", insertable = false, u

在SpringJava中,尤其是在JoinColumn中,如果我们使用JoinColumn,例如JoinColumn(name=“guest\u id”)。然后将显示所有来宾数据。而我只想检索一个数据,这是唯一的名称

@Column(name = "guest_id")
private Integer guestId;

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "guest_id", insertable = false, updatable = false)
private String guestName;
当邮递员提出请求时,结果如下

    "guestCard": {
        "id": 53,
        "idPic": null,
        "guestType": null,
        "title": "mr",
        "name": "RIKO JANUAR",
        "phoneNumber": "08100000",
        "email": "riko@email.com",
        "gender": "male",
        "bDay": "2019-10-29",
        "nationality": "AF",
        "idCard": "21321131231",
        "validity": "2019-10-29",
        "telpFax": null,
        "address": "bandung",
        "job": "Musician"
    }
我想要的是只显示一个,即名称。像这样

 "guestCard": {
        "name": "RIKO JANUAR"
    }
我试过这样做,但没有成功

@Column(name = "guest_id")
private Integer guestId;

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "name.guest_id", insertable = false, updatable = false) //this is not work
private String guestName;

据我所知,您需要从实体中选择什么。因此,创建一个dto并使用投影转换到查询结果。参考-

另一种方法是在HQL中使用构造函数

@Query("SELECT new NewDto(guest.guestID, guest.guestCard.guestName FROM Guest guest)")
    List<NewDto> findAllGuest();
@Query(“选择新的NewDto(guest.guestID,guest.guestCard.guestName FROM guest guest)”
列出findAllGuest();

据我所知,您需要从实体中选择要选择的内容。因此,创建一个dto并使用投影转换到查询结果。参考-

另一种方法是在HQL中使用构造函数

@Query("SELECT new NewDto(guest.guestID, guest.guestCard.guestName FROM Guest guest)")
    List<NewDto> findAllGuest();
@Query(“选择新的NewDto(guest.guestID,guest.guestCard.guestName FROM guest guest)”
列出findAllGuest();

忽略关系类上@JsonIgnoreProperties要隐藏的所有字段


其他解决方案是,创建各种模型类并传输字段。

忽略关系类上@JsonIgnoreProperties要隐藏的所有字段


其他解决方案,创建各种模型类并传输字段。

为什么不在代码中添加逻辑?我假设您在服务器端映射请求,然后从数据库检索数据,是吗?为什么不在代码中添加逻辑?我假设您在服务器端映射请求,然后从数据库中检索数据,对吗?