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

JPA中使用序列的约束违反异常

危阳
2023-03-14

我在项目中使用Spring数据,并使用JPA在实体和表之间进行映射,这是我的实体

public class daoTable {

@Id
@SequenceGenerator(name = "seq_table_nc", sequenceName = "SEQ_TABLE_NC")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_table_nc")
private Long id;
// setter && getter && outher params
}

这是我的回购

public interface daoTable Repository extends JpaRepository<daoTable , Long>, JpaSpecificationExecutor<daoTable >{}

当我尝试保存时,我遇到了以下问题:

  1. org.springframework.dao.DataIntegrityViolationException: 無法執行 statement;SQL [n/a];约束 [GQAO.PK_RT];nested exception is org.hibernate.exception.ConstraintViolationException: can't execute statement
  2. java.sql.SQLIntegrityConstraintViolationException: ORA-00001: violation de contrainte unique

共有1个答案

越嘉树
2023-03-14

如果您的数据库中已经有与Sequence Generator将生成的值相同的记录,则可能会发生这种情况。

例如,如果我保存一条记录而不使用此SequenceGeneratorseq_table_nc),然后将其添加到该SequenceGenerator的代码中(seq_table_nc),并尝试保存,我将得到您拥有的异常,因为生成器可以给我一个值,该值等于我在数据库中已经拥有的值。

通常,您应该检查id的值是否保存在DB中。之后,您必须了解如何更新数据库SequenceGenerator,使其开始生成唯一值。

祝你好运!

 类似资料:
  • 我正在使用Spring和Hibernate,我得到了这个例外。以下是我试图获得的:我有User和UserSettings类,它们以OneToMany和ManyToOne注释为界,如下所示: 现在,我想为用户添加设置,我是这样做的: 问题来了:UserSettings中的用户持有旧设置和新设置的集合(设置,我刚刚创建并想要添加),但旧设置持有用户的集合,其中没有新设置。我想这就是为什么我会遇到异常,

  • 我有一个MathematicsAnswer引用的实体数学。如果对数学执行post请求,我会得到一个例外,即MathsAnswer上的字段不能为空。但我确实在球场上跳了起来。拜托,我需要这个解决方案<代码>java.sql。SQLIntegrityConstraintViolationException:列'question_id'不能为空。 sql架构: 实体类: MathsAnswers.jav

  • 问题内容: 我遇到了一个项目有两次相同的.jar(对于我来说,是el-api.jar v2.1)两次的问题,因此,当我尝试使用Tomcat 6运行项目时,出现了以下错误堆栈。 我发现了 http://blog.springsource.com/2008/10/20/understanding-the-osgi-uses- directive/ 但这没有用,因为解决方案影响了我项目的太多部分。 我无

  • 堆栈溢出。 和 详细信息:失败行包含(18,Item Name在这里,这是描述,40.00,items/pattern.png,lXBjgo70QIrI8aF,1,null)。 这是完整的回溯 null 提前谢谢你

  • 我试图理解TopCoder上的问题: 它特别指定 数组的长度为n. 每个元素都是介于1和k之间的整数,包括整数。 每当A和B是数组的两个连续元素(按此顺序)时,我们有(A 我的问题是关于第一个示例的第三个约束: 答案不应该是4吗?数组{2,1}发生了什么?有3个数组可以按照上述约束生成,但是thre也是可以生成的第四个数组,即{2,1}。问题的任何地方都写着,我们只能有唯一的数字组合。为什么我们不

  • 问题内容: 我正在尝试解析Web请求并将其保存到数据库。我有3个模型,第一个节点是virtualDocument。这是uniq表(根据请求url)。VirtualRequest表具有所有erquest主体,而HttpHeaderList表根据其virtualRequest bean ID具有所有thhp标头。 当我尝试保存第一个日志时,出现了这样的错误; 这是VirtualDocument bea