SSH+JPA는 add 작업을 한 번만 수행할 수 있으며 해결 방법은
1591 단어 ssh
javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.dalton.domain.Department
org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException
.................................................
서버를 다시 시작할 때마다add를 한 번, 두 번째로 오류를 보고할 수 있습니다.
debug를 통해 두 번째add가 필요한department 대상이 업데이트되지 않은 것을 발견했습니다. 모두 id값을 포함하여 처음 발생한 것입니다.다시 말하면 제가 department를 두 번째로 삽입했을 때 데이터베이스에 실례화되지 않았을 때 ID 값이 생겼고 이 ID 값은 제가 처음으로 사용자의 ID를 삽입한 것입니다. 이것은 비정상입니다. 왜냐하면 ID가 설정된 적이 없기 때문입니다. 그리고 JPA의 기본적인 행위는 키 생성 정책을 지정하면 키를 설정할 수 없습니다. 비어 있거나 0이 되지 않으면 데이터베이스에 저장된 것으로 간주됩니다.퍼시스트 () 방법을 호출하면 위의 이상을 던집니다.
JavaBean Department의 역할 영역 설정이 잘못되었기 때문에 기본 단례적인 설정을 사용했습니다. Action에 있어서 반드시 사용해야 합니다
prototype (호출할 때마다 하나의 객체를 만듭니다) 의 역할 영역입니다. 수정 방법은 JavaBean Department에서 @Scope ("prototype") 를 참고하는 것입니다.
@Entity
@Component("department")
@Scope("prototype")
@Table(name="Department")
public class Department {
/* id */
private int id ;
/* id */
private int pid ;
/* */
private String name ;
..............................................................................
이렇게 문제를 해결하다.
그러나 앞의 자바빈에는 이것을 추가하지 않았지만'@Component("department")'라는 주석도 없습니다. 이 주석이 영향을 미쳤는지 테스트가 없습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SSH 키 쌍이 손실된 경우 EC2 인스턴스에 대한 SSH 연결 복원얼마 전에 안타깝게도 중요한 EC2 인스턴스에 속한 SSH 키 쌍을 잃어버렸습니다. 그 시점에서 우리는 방금 인스턴스의 스냅샷을 찍고 새 키 쌍으로 새 인스턴스를 생성했습니다. 이 블로그 게시물에서는 SSH 연결을 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.