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

eclipse链接重复键奇怪错误

松鸣
2023-03-14

当我为第一个实体(customer1)创建数据时,数据创建成功了,但当我要为第二个实体创建数据时,Im会出现以下错误。我们在两个不同的包中生成这两个实体,它们的表注释名不同,所以我不明白为什么我会出现这个错误。我们还为每个实体创建不同的持久性单元名称...这个错误的原因是什么?

错误在提交中

entityManager.getTransaction().commit();
        entityManager.close();

异常[EclipseLink-4002](Eclipse Persistence Services-2.3.2.V20111125-R10461):org.Eclipse.Persistence.exceptions.DatabaseException内部异常:java.sql.SQLINTegrityConstraintViolationException:语句被中止,因为它会导致在“Customer02”上定义的“SQL130407132754180”标识的唯一或主键约束或唯一索引中出现重复的键值。错误代码:20000调用:插入customer02(CUSTOMER、NOTE、BUYERID)值(?,?,?)bind=>[3个参数绑定]查询:InsertObjectQuery(Prod2.Customer02@7FE4BDCC)

包中的实体1客户...Customer01

package prod1;

import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="customer01")
public class Customer
{

  @Id
  @Column(name="customer_number")
  private String customer;
  private String Note;
  private String BuyerId;

包中的实体2客户...Customer02

package prod2;

import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="customer02")
public class Customer
{

  @Id
  @Column(name="customer_number")
  private String customer;
  private String Note;
  private String BuyerId;

持久性单元是

-<persistence-unit name="prod1">
<class>prod1.customer01</class>-
<properties><property name="eclipselink.ddl-generation" 
value="drop-and-create-tables"/>
<property name="eclipselink.logging.level" value="SEVERE"/>
</properties></persistence-unit>-

-<persistence-unit name="prod2">
<class>prod2.customer02</class>-
<properties><property name="eclipselink.ddl-generation" 
value="drop-and-create-tables"/>
<property name="eclipselink.logging.level" value="SEVERE"/>
</properties></persistence-unit>-

共有1个答案

郑西岭
2023-03-14

所示注释没有为ID定义顺序。尝试添加@GeneratedValue以让提供程序为您分配它们。

http://wiki.eclipse.org/eclipselink/examples/jpa/primarykey

 类似资料:
  • 运行此代码时,在行获得NullPointerException 如果我在调试模式下运行,它会在同一行上停止,但在变量选项卡中,的值可能是原样的,即来自main方法的值。 那么为什么运行时中有NullPointerException呢?

  • null 结果将是0xFFFFFFFFFFFFFFFF0000(正确,寄存器溢出,但我们只更改2字节) 结果将为0x00000000000000000000(WTF?,寄存器溢出,但结果更改所有8个字节而不是4个字节。为什么是0x00000000000000,而不是0xFFFFFF00000000)

  • 因此,在去年与react合作之后,我设法理解了它的功能和注意事项,以及如何避免不必要的渲染。 昨天我在玩一些代码,遇到了一个以前没有看到的问题,有点困惑。 在上面的代码中,我添加了一个简单的计数器,每次单击都会设置一个新的状态,这会导致重新渲染,在屏幕上显示“Count:1”,并在dev工具中显示一个“counter render”日志,就像我预期的那样。 奇怪的部分来自渲染变量,我用数字0启动(

  • 我使用的是Java8。 我最近遇到了这个问题: 这不会抛出java.lang.ClassCastException,为什么呢? 我总是想<code>和<code>System.out。println调用。但当我尝试这样做时,它会像预期的那样抛出异常。

  • 问题内容: 我正在使用此代码: 但是在编译时出现此错误: 然后是堆栈跟踪的编译器错误。 我将在课堂开始时同时进行这两种导入: 有什么事吗 在Netbeans中,我看到自动完成选项并且Locale对象没有语法错误… 问题答案: 您的设置有些麻烦,下面的程序对我来说很好用。 它要求源代码的事实使我相信它正在尝试以某种调试模式进行编译或运行。您不需要编译java.util。*的源代码,这很奇怪。 看看我

  • 我在包上收到以下编译器错误: 包com.core.cronjob.mapping; 错误 : 内部编译器错误: java.lang.非法描述异常: 信息不能为空在组织.eclipse.jdt.内部.编译器.codegen.StackMapFrame.addStackItem(堆栈映射帧.java:81) 我不认为这是代码。我正在使用蚂蚁1.9.4来构建项目和Eclips Mars.1版本。(4.5