当前位置: 首页 > 知识库问答 >
问题:

Spring Data JPA-使用自定义id/primary键保存新实体

谢学名
2023-03-14

简而言之,我的问题是如何使用Spring data JPA保存一个具有预置主键(而不是null)的实体。

要进行解释,请考虑一个名为customer的简单实体类。记住,id没有设置为自动递增,它必须是一个自定义的唯一值。这只是一个小例子。我需要我的实际表中的id是一个自定义的唯一的,比如用户名。

@Entity
@Table(name = "customer")
public class Customer implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Basic(optional = false)
    @Column(name = "cust_id", nullable = false)
    private Integer custId;

    @Column(name = "first_name", length = 30)
    private String firstName;

    @Column(name = "last_name", length = 30)
    private String lastName;

    //getter, setters 
}
@Repository
public interface CustomerRepository extends JpaRepository<Customer, Integer> {
}

现在,我想我必须插入一个id为101的新客户记录。所料之道是:

Customer customer = new Customer();
customer.setCustId(101);
customer.setFirstName("Some");
customer.setLastName("Name");

repository.save(customer);

但是,repository.save()没有插入id为101的新客户。那么,我该怎么做呢?

共有1个答案

袁轶
2023-03-14

如果您处于活动事务中,请始终记住在独立检查数据库以确保已进行更改之前显式调用flush,或确保事务已提交。

 类似资料:
  • 问题内容: 如果我有两个像这样的hibernate实体: 我有一个已经存储的公司 我可以创建一个仅用其ID引用公司的人,而不是加载整个记录,例如: 它是仅保存参考还是使用更新公司? 问题答案: 是的,您可以做到。 它是否仅保存引用,还是使用name = null更新公司? 使用default ,这样,Hibernate将不执行任何操作。因此答案是:它只保存一个外键。 最有效的方法(也适用于JPA)

  • 我试图创建一个注册用户的功能。 我遵循了这篇文章中的建议:将空作为id保存,并Hibernate,但解决方案对我不起作用。这是我的用户类 这是我的账户类 我的日志显示了以下输出

  • 问题内容: 我在数据库中进行了一系列测试和案例。每当测试过时时,它都会被注明过期日期,并且该测试的任何子案例也应注明过期日期。我看到两种方法可以做到这一点: 1)将保存功能修改为结束日期子案例。 2)创建一个接收器,侦听正在保存的测试模型,然后结束其子案例的日期。 有什么理由要使用另一个? 编辑: 我看到这篇博客文章建议每当您检查模型的给定值时都使用save方法。由于我正在检查end_date,也

  • 功能介绍 获取本APP的新用户自定义留存报告相关数据 接口 https://openapi.baidu.com/rest/2.0/mtj/svc/app/getDataByKey 请求参数 此处仅列本接口特有参数,公共参数请参考报告级API说明 获取表格数据 参数名 参数类型 是否必须 描述 method string 是 retaineduser/a flag string 是 newcust

  • 我想保存两个实体的差异。旧实体有一个id女巫不是空的。新的id值为null,所以我将它们作为ValueObject进行比较。问题是ValueChange确实保存了差异,但没有保存旧的id。ich如何做到这一点?

  • 您需要创建一个通用的JpaRepository,以便处理系统进行的所有事务。在这里遵循这个示例。 它与实现有点不同,因为我的目标不是执行搜索,而是操作save方法。 unsatisfiedDependencyException:创建名为“sistema menuservice”的bean时出错:通过字段“sistema menurepository”表示未满足的依赖关系;嵌套异常是org.spri