Spring Boot Sping Boot 实体如何通过自定义字段检查值是否存在于另一个表中

mec1mxoz  于 2022-11-05  发布在  Spring
关注(0)|答案(1)|浏览(201)

bounty将在3天后过期。回答此问题可获得+50的声望奖励。Abd Abughazaleh正在寻找标准答案

如果结果中显示的任何产品存在于user_favorites表中,则用户可以搜索产品,因此show标志告诉前端,此产品是通过user_id和product_id为该用户添加的,其中包含spring Boot 和spring数据。
我的实体:

@Id
@Column(name = "catId")
private Integer catId;
@Column(name = "cat_no")
private String catNo;
@Column(name = "cat_sn")
private String catSn;
@Column(name = "doc_ref")
private String docRef;
@Column(name = "user_id")
private Integer userId;
@Column(name = "updated_at")
private String updatedAt;
@Column(name = "created_at")
private String createdAt;

我尝试使用@Formula,但没有任何事情发生总是返回null。如果它是由@Formula完成的,我如何添加参数到@Formula

@Formula(value = "SELECT count(*) as checker  FROM fb_user_favorites WHERE cat_id = 34699 AND user_id = '52') ")
@Transient
private String checker;
bkhjykvo

bkhjykvo1#

@Transient是JPA规范的一部分。在Hibernate中,使用此注解标记的字段只是简单地从任何JPA引擎/运行时逻辑中忽略/排除。
@Formula是Hibernate的一部分。用它标记的字段不会被Hibernate持久化(第一个参数不使用@Transient作为冗余),值是在执行实体查询时由提供的SQL计算的。因此,要使Hibernate能够看到这些字段,它们不应被@Transient排除
TL;DR删除@Transient注解

相关问题