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