Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在persist()之后跳过了JPA commit()行_Java_Jpa - Fatal编程技术网

Java 在persist()之后跳过了JPA commit()行

Java 在persist()之后跳过了JPA commit()行,java,jpa,Java,Jpa,我正在尝试在数据库中添加新实体,但每次尝试时,提交行都会在persist()之后跳过 我不知道怎么了,因为对象t是完整的 编辑1:这些是我的实体属性 private static final long serialVersionUID = 1L; @Id @Basic(optional = false) @NotNull @Column(name = "Id") private Integer id; @Column(name = "idItem"

我正在尝试在数据库中添加新实体,但每次尝试时,提交行都会在persist()之后跳过

我不知道怎么了,因为对象t是完整的

编辑1:这些是我的实体属性

private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "Id")
    private Integer id;
    @Column(name = "idItem")
    private Integer idItem;
    @Column(name = "pedidoData")
    @Temporal(TemporalType.DATE)
    private Date pedidoData;
    @Size(max = 9)
    @Column(name = "pedidoEnderecoCep")
    private String pedidoEnderecoCep;
    @Column(name = "pedidoEnderecoNumero")
    private Integer pedidoEnderecoNumero;
    @Size(max = 85)
    @Column(name = "pedidoEnderecoBairro")
    private String pedidoEnderecoBairro;
这就是我要添加的对象:


在更高的层面上,问题似乎是因为您保存了提交声明的位置。您将其保存在if条件中,因此只有当满足if条件时才会执行commit。例如,在示例中,您共享的id输入数据不为null,因此,如果不满足条件,则不会发生提交,相反,如果您将发送id为null的实体,则会发生提交。应将commit语句移到if块之外,如下所示:

 if (t.getId() == null) {
      em.persist(t);              
 }
 em.getTransaction().commit();

它只发生在一个实体上。我刚刚测试过,相同的代码与另一个实体一起工作。您可以共享发送到此方法的输入序列吗?@codeLover当然可以。我用更多信息编辑了这个问题。如果提交被“跳过”,则抛出一个可丢弃的
。结束。因此,请调试引发异常的原因。基本java.commit()行仍然被跳过您能解释一下“commit()行仍然被跳过”的确切含义吗?当我进入persist()行并单击移动到下一行时,它会在调试模式下直接转到em.close()。就像em.getTransaction().commit();不存在。你的意思是扔掉一个垃圾。所以,调试您的代码,看看抛出了什么样的Throwable!
 if (t.getId() == null) {
      em.persist(t);              
 }
 em.getTransaction().commit();