Я new bee in Hibernate
и использую PostgreSQL 9.3, JDK 1.7, Hibernate 4.0.2
Я пытаюсь сохранить отношение Customer
who Has-a
с Address
, то есть отношение One-To-Many
.
При сохранении Customer
я получаю исключение:
javax.persistence.PersistenceException: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.cust.entities.Address
Субъект-заказчик:
@Entity
@Table(name="customer")
public class Customer implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name = "CustomerIdSeq", sequenceName = "c_id_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CustomerIdSeq")
@Column (name="c_id")
private Long cId;
@Column(name="cname")
private String cname;
//bi-directional many-to-one association to Address
@OneToMany(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn(name="c_id")
private List<Address> address;
//getters and setters
}
Адрес объекта:
@Entity
@Table(name="address")
public class Address {
@Id
@Column(name="c_id")
private Long cId;
@ManyToOne
@PrimaryKeyJoinColumn(name="c_id", referencedColumnName="c_id")
private Customer customer;
@Column(name="street")
private String street;
@Column (name="city")
private String city;
//getters and setters
public void setCustomer(Customer customer) {
this.customer= customer;
this.cId= customer.getCId();
}
}
Я пробовал что-то похожее на Java Persistence/Identity & Sequencing