Ich versuche, eine Eins-zu-viele und eine viele-zu-eins-Beziehung mit Hibernate 4.1.1 persistent aber der Fremdschlüssel ist immer NULL.Null-Fremdschlüssel, in ManyToOne-Beziehung mit Hibernate [4.1.1] Anmerkungen
Es gibt zwei Entitäten: Konto und Client. Ein -Client könnte mehrere Accounts hat, während ein Konto genau einen Kunden hat.
Hier werden die Klassen sind (nur was zählt):
Account.java
@Entity
@Table(name = "account")
public class Account implements Serializable {
private Client client;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
public long getId() {
return id;
}
@ManyToOne
@JoinColumn(name = "id_client")
public Client getClient() {
return client;
}
}
Client.java
@Entity
@Table(name = "client")
public class Client implements Serializable {
private List<Account> accounts;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
public long getId() {
return id;
}
@OneToMany(mappedBy = "client", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
public List<Account> getAccounts() {
return accounts;
}
}
Test.java
session.beginTransaction();
Client client = new Client();
Account account1 = new Account();
Account account2 = new Account();
a.addAccount(account1);
a.addAccount(account2);
session.save(client);
session.getTransaction().commit();
Während des Laufens, fügt Hibernate den Fremdschlüssel zur Tabelle:
Hibernate: alter table account add index FKB9D38A2D3B988D48 (id_client), add constraint FKB9D38A2D3B988D48 foreign key (id_client) references client (id)
Beide Konten id_client Spalte NULL haben.
Ich habe versucht, Nullable = false an der @ JoinColumn-Beziehung, aber das nur eine Ausnahme aufgerufen.
Exception in thread "main" org.hibernate.exception.ConstraintViolationException: Column 'id_client' cannot be null
Versuchen Sie, die Annotation @NotNull auf der Konto Seite der Beziehung –
Danke, aber es hat nicht funktioniert. –