【问题标题】:Compare saved entities比较已保存的实体
【发布时间】:2016-08-17 18:01:18
【问题描述】:

我正在保存一些实体,这些实体是从 REST-API 获得的。我为此使用 Spring JPA 存储库。我在保存时为每个实体生成一个 id。 sanveAndFlush() 方法只监视实体的 id 是否已经存在,然后它不会再次保存它。但我的问题是,我生成了 i id,然后它只是在保存时复制了实体。我如何与其他实体(例如文本或类似内容)进行比较。

家政服务:

public void saveOrUpdate(Tweetpost tweetpost) {
        tweetRepository.saveAndFlush(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 方法以首先查询 - 如果实体存在,则根据传入的数据进行更改,否则合并或持久化实体。

标签: java spring jpa spring-data-jpa


【解决方案1】:

请试试这个;

@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 2022-01-04
    相关资源
    最近更新 更多