고객 및 업로드 테이블 두 개가 있어야합니다. 여기서 고객이 업로드 한 항목 수를 추적합니다. 고유 한 식별자 인 공유 기본 키 CustomerID
과의 일대일 관계입니다. 나는 구원을 얻으려고 애쓰는 중이다. 고유 식별자의 생성/저장을 처리하기 위해 Hibernates uuid2 전략을 사용하고 있습니다. 업로드 엔티티를 포함하기 전에 고객은 uuid를 사용하여 올바르게 저장합니다. 기본적으로 나는 누군가가 고객 객체를 만들 때마다 업로드가 생성되기를 원한다.JPA 2.0 + 일대일 + 공유 기본 키가 설정되지 않음
고객 :이
@Entity
public class Upload implements Serializable {
@Column(name="UPLOADCOUNT", nullable=true, unique=false)
private Integer uploadCount = new Integer(0);
@MapsId ("CUSTOMERID")
@OneToOne (optional=false)
@JoinColumn(name="CUSTOMERID", referencedColumnName = "CUSTOMERID", nullable=false, unique=true)
private Customer customer;
@Id
@Column(name="CUSTOMERID", length=36, nullable=false, unique=true, insertable=false, updatable=false)
private String customerId_;
public Upload(Customer customer) {
this.customer = customer;
}
}
업로드 :
@Entity
public class Customer implements Serializable {
@Id
@Column(name = "CUSTOMERID", unique = true)
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String customerId;
@OneToOne(mappedBy = "customer", optional = false, cascade = CascadeType.ALL)
private Upload upload ;
public Customer() {
this.upload = new Upload(this);
}
}
코드 저장 :
Customer customer = new Customer();
EntityManager em = EntityManagerUtil.getEntityManager();
EntityTransaction trans = em.getTransaction();
trans.begin();
em.persist(customer);
trans.commit();
예외 :이
javax.persistence.PersistenceException: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): Upload
"저장"코드에 : '엔터티'란 무엇입니까? – ben75
고객입니다. 코드를 업데이트했습니다. – Nadin