0
保存一些实体,我从REST-API中获取。我使用Spring JPA回购。我保存时为每个实体生成一个ID。 sanveAndFlush()方法只会监视实体的ID是否已经存在,然后它不会再保存它。但我的问题是,我生成我的身份证,然后它只是保存时复制实体。我怎样才能比较文本或其他东西比较类似的东西。比较保存的实体
家政服务:
public void saveOrUpdate(Tweetpost tweetpost) {
tweetRepository.saveAndFlush(tweetpost);
}
Tweetpost实体:
@Id
@GeneratedValue
@Column(columnDefinition = "INT unsigned")
private Integer id;
@Column(columnDefinition = "LONG")
private long tweetid;
@NotEmpty
@Length(max = 255)
@Column(columnDefinition = "VARCHAR(255)", length = 255, nullable = false)
private String profileImageUrl;
@NotEmpty
@Length(max = 64)
@Column(columnDefinition = "VARCHAR(64)", length = 64, nullable = false)
private String fromUser;
@NotEmpty
@Column(columnDefinition = "TEXT", nullable = false)
private String unmodifiedText;
@NotNull
@Column(columnDefinition = "DATE", nullable = false)
private Date createdAt;
@Length(max = 255)
@Column(columnDefinition = "VARCHAR(255)", length = 255, nullable = false)
private String url;
@Length(max = 255)
@Column(columnDefinition = "VARCHAR(255)", length = 255, nullable = false)
private String displayUrl;
@Length(max = 255)
@Column(columnDefinition = "VARCHAR(255)", length = 255, nullable = false)
private String expandedUrl;
@Length(max = 255)
@Column(columnDefinition = "VARCHAR(255)", length = 255, nullable = false)
private String mediaUrl;
试着解释一下你想要更清楚一点。这听起来像是你在没有主键的情况下传递实体数据(JSON),并且希望你的saveAndFlush方法根据一些非pk字段来判断这个实体是否已经存在。如果是这样,为什么麻烦使用Integer id值,而是让那些你想成为唯一主键的字段?或者,您可以使用传入的字段将您的saveAndFlush方法更新为第一个查询 - 如果实体存在,请根据传入的数据对其进行更改,否则合并或保留该实体。 – Chris