Я попытался объяснить проблему настолько, насколько смогу, пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
У объекта таблицы emphist есть уникальный ключ, который настроен так:
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="EMP_SERIAL_GERERATOR")
@SequenceGenerator(name="EMP_SERIAL_GERERATOR", sequenceName="EMP_SERIAL", allocationSize=1)
@Column(name="EMP_SERIAL", nullable=false, precision=9)
private long empSerial;
try {
em.persist(EmphistNew);
} catch (Exception e) {
throw e;
}
В коде я пытаюсь сохранить новую запись в моей таблице emphist и получаю следующую ошибку:
javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: отсоединенная сущность передана вpersist: com.company.dep.project.model.emphist at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert (AbstractEntityManagerImpl.java:1692) ~ [hibernate-entitymanager-5.0.12.Final.jar: 5.0.12.Final] at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert (AbstractEntityManagerImpl.java:1602) ~ [hibernate-entitymanager-5.0.12.Final.jar: 5.0.12.Final] в org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert (AbstractEntityManagerImpl.java:1608) ~ [hibernate-entitymanager-5.0.12.Final.jar: 5.0.12.Final] at org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist (AbstractEntityManagerImpl.java:1152) ~ [hibernate-entitymanager-5.0.12.Final.jar: 5.0.12.Final] на com.company.dep.project.batch.process.CheckandfillgapProcessor.insertTransaction (CheckandfillgapProcessor.java:428) [classes /: na] в com.company.dep.project.batch.process.CheckandfillgapProcessor.checkForGaps (CheckandfillgapProcessor.java:247) [classes /: na] в com.company.dep.project.batch.process.CheckandfillgapProcessor.process(CheckandfillgapProcessor.java:103) [classes /: na] на com.company.dep.project.batch.process.test.CheckandfillgapProcessorTest.testCheckForGaps2 (CheckandfillgapProcessorTest.java:129) [test-classes /: na] на sun.ref.NativeMethodAccessorImpl.invoke0 (собственный метод) ~ [na: 1.8.0_51] at sun.reflect.NativeMethodAccessorImpl.invoke (неизвестный источник) ~ [na: 1.8.0_51] at sun.reflect.DelegatingMethodAccessorImpl.invoke [неизвестный источник]na: 1.8.0_51] в java.lang.reflect.Method.invoke (неизвестный источник) ~ [na: 1.8.0_51] в org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall (FrameworkMethod.java: 50) [junit-4.12.jar: 4.12] в org.junit.internal.runners.model.ReflectiveCallable.run (ReflectiveCallable.java:12) [junit-4.12.jar: 4.12] в org.junit.runners.model.FrameworkMethod.invokeExplosively (FrameworkMethod.java:47) [junit-4.12.jar: 4.12] в org.junit.internal.runners.statements.InvokeMethod.evaluate (InvokeMethod.java:17) [junit-4.12.jar] at org.junit.internal.runners.statements.RunBefores.evaluate (RunBefores.java:26) [junit-4.12.jar: 4.12] по адресу org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbackseTeCateBeforeTeate (java: 75) [spring-test-4.3.18.RELEASE.jar: 4.3.18.RELEASE] в org.junit.internal.runners.statements.RunAfters.evaluate (RunAfters.java:27) [junit-4.12.jar: 4.12] at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate (RunAfterTestMethodCallbacks.java:86) [spring-test-4.3.18.RELEASE.jar: 4.3.18.RELEASE] в org.sprf.test.context.junit4.statements.SpringRepeat.evaluate (SpringRepeat.java: 84) [spring-test-4.3.18.RELEASE.jar: 4.3.18.RELEASE] в org.junit.runners.ParentRunner.runLeaf (ParentRunner.java:325) [junit-4.12.jar: 4.12] вorg.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild (SpringJUnit4ClassRunner.java:252) [spring-test-4.3.18.RELEASE.jar: 4.3.18.RELEASE] в org.springframework.j4.con.te.SpringJUnit4ClassRunner.runChild (SpringJUnit4ClassRunner.java:94) [spring-test-4.3.18.RELEASE.jar: 4.3.18.RELEASE] в org.junit.runners.ParentRunner $ 3.run (ParentRunner.java:290) [junit-4.12.jar: 4.12] в org.junit.runners.ParentRunner $ 1.schedule (ParentRunner.java:71) [junit-4.12.jar: 4.12] в org.junit.runners.ParentRunner.runChildren (ParentRunner.java:288)[junit-4.12.jar: 4.12] на org.junit.runners.ParentRunner.access $ 000 (ParentRunner.java:58) [junit-4.12.jar: 4.12]в org.junit.runners.ParentRunner $ 2.evaluate (ParentRunner.java:268) [junit-4.12.jar: 4.12] в org.junit.internal.runners.statements.RunBefores.evaluate (RunBefores.java:26) [junit-4.12.jar: 4.12] at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate (RunBeforeTestClassCallbacks.java:61) [spring-test-4.3.18.RELEASE.jar: 4.3.18.RELEASE] вorg.junit.internal.runners.statements.RunAfters.evaluate (RunAfters.java:27) [junit-4.12.jar: 4.12] в org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate (RunAfterTest70) [spring-test-4.3.18.RELEASE.jar: 4.3.18.RELEASE] в org.junit.runners.ParentRunner.run (ParentRunner.java:363) [junit-4.12.jar: 4.12] в орг.springframework.test.context.junit4.SpringJUnit4ClassRunner.run (SpringJUnit4ClassRunner.java:191) [spring-test-4.3.18.RELEASE.jar: 4.3.18.RELEASE] в org.eclipse.jdt.internal.junit4.runJUnit4TestReference.run (JUnit4TestReference.java:86) [.cp /: na] в org.eclipse.jdt.internal.junit.runner.TestExecution.run (TestExecution.java:38) [.cp /: na] at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:459).cp /: na] at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:678) [.cp /: na] в org.eclipse.jdt.internal.junit.runner.RemoteTestRrun (RemoteTestRunner.java:382) [.cp /: na] at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java:192) [.cp /: na] Причина: org.hibernate.PersistentObjectException: отсоединенная сущность, переданная в persist: com.company.dep.project.model.emphist в org.hibernate.event.internal.DefaultPersistEventListener.onPersist (DefaultPersistEventListener.java:124) ~ [hibernate-core-5.0.12.Final.jar: 5.0.12.Final] в org.hibernate.event.internal.DefaultPersistEventListener.onPersist (DefaultPersistEventListener.java:58) ~ [hibernate-core-5.0.12.Final.jar: 5.0.12.Final] вorg.hibernate.internal.SessionImpl.firePersist (SessionImpl.java:775) ~ [hibernate-core-5.0.12.Final.jar: 5.0.12.Final] в org.hibernate.internal.SessionImpl.persist (SessionImpl.java:748) ~ [hibernate-core-5.0.12.Final.jar: 5.0.12.Final] в org.hibernate.internal.SessionImpl.persist (SessionImpl.java:753) ~ [hibernate-core-5.0.12.Final.jar: 5.0.12.Final] в org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist (AbstractEntityManagerImpl.java:1146) ~ [hibernate-entitymanager-5.0.12.Final.jar: 5.0.12.Final] ... 37 общих кадров пропущено