0
如果您知道更好的標題,請更改標題,因爲我真的不知道如何表達問題。JPA堅持PK對象(ManyToMany)
我有三類:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@NotNull
@Size(min = 1, max = 45)
@Column(name = "name")
private String name;
@JoinTable(name = "usuer_has_contact", joinColumns = {
@JoinColumn(name = "user_id", referencedColumnName = "id")}, inverseJoinColumns = {
@JoinColumn(name = "contact_id", referencedColumnName = "id")})
@ManyToMany(cascade = CascadeType.ALL)
private List<Contato> contactList;
//Getters and Setters
}
DB Table:
Table Name: User
Columns: id (int pk), name (varchar(45) not null).
@Entity
private class Contact {
@EmbeddedId
protected UserHasContact userHasContact;
@NotNull
@Size(min = 1, max = 45)
@Column(name = "value")
private String value;
@ManyToMany(mappedBy = "contactList")
private List<User> userList;
//Getters and Setters
}
DB Table:
Table Name: Contact
Columns: id (int pk), value (varchar(45) not null).
@Embeddable
private class UserHasContact {
@NotNull
@Column(name = "id")
private Integer id;
//Getters and Setters
}
DB Table:
Table Name: UserHasContact
Columns: userId (int pk), contactId (int pk).
我想要做的是,當我堅持用戶本身堅持的一切。例如:
User user = new User();
user.setContactList(new ArrayList<Contact>());
Contact contact = new Contact();
contact.setValue("555-5555");
user.getContactList().add(contact);
// Here I'd call another class, passing User so it would only do a
// entityManager.persist(user), and it would persist it all and
// take care of all tables for me. What I don't want to do is to
// fill up the values myself, I want let JPA do it for me.
我希望這樣做後保存,但它說的ContactID爲null,它不能爲空。 我能做什麼?
UserHasContact,這就是爲什麼我試圖使用它像這樣。還有另一個名爲Place的對象,它訪問相同的對象聯繫人,並具有對象PlaceHasContact – pringlesinn
IDE隨後生成糟糕的代碼。它是哪個IDE? –
NetBeans 7.0.1 ...那麼應該如何處理註釋或類呢?我是新的,有點還是輸了 – pringlesinn