Java 如何使用JoinColumnn仅选择几个要显示的数据
在SpringJava中,尤其是在JoinColumn中,如果我们使用JoinColumn,例如JoinColumn(name=“guest\u id”)。然后将显示所有来宾数据。而我只想检索一个数据,这是唯一的名称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
@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要隐藏的所有字段
其他解决方案,创建各种模型类并传输字段。为什么不在代码中添加逻辑?我假设您在服务器端映射请求,然后从数据库检索数据,是吗?为什么不在代码中添加逻辑?我假设您在服务器端映射请求,然后从数据库中检索数据,对吗?