problème en utilisant referencedColumnName
Bonjour,
j'essaie de suivre un exemple d'un bouquin, pour faire un @ManyToOne en utilisant une table de jointure:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
@Entity
@IdClass(Account.AccountPk.class)
public class Account {
private String description;
private String code;
private Integer number;
private Customer customer;
public Account(String description) {
this.description = description;
}
protected Account() {
}
@Id
public String getCode() {
return this.code;
}
@Id
public Integer getNumber() {
return this.number;
}
public String getDescription() {
return this.description;
}
@ManyToOne
@JoinTable(name="acount_customer",
joinColumns={
@JoinColumn(name="code_costomer", referencedColumnName="code"),
@JoinColumn(name="number")
},
inverseJoinColumns=@JoinColumn(name="id"))
public Customer getCustomer() {
return customer;
}
public void setDescription(String description) {
this.description = description;
}
public void setNumber(Integer number) {
this.number = number;
}
public void setCode(String code) {
this.code = code;
}
public static class AccountPk {
// ...
}
} |
j'utilise hibernate comme provider avec:
Code:
1 2
|
<property name="hibernate.hbm2ddl.auto">update</ property> |
le problème est que en lançant le test unitaire j'ai l'exception:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
Exception in thread "main" java.lang.ExceptionInInitializerError
at hibernate.HibernateUtil.<clinit>(HibernateUtil.java:28)
at hibernate.Test.main(Test.java:23)
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: hibernatePU] Unable to configure EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:265)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:125)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
at hibernate.HibernateUtil.<clinit>(HibernateUtil.java:24)
... 1 more
Caused by: org.hibernate.MappingException: Unable to find column with logical name in table Account
at org.hibernate.cfg.Mappings.getPhysicalColumnName(Mappings.java:493)
at org.hibernate.cfg.annotations.TableBinder.bindFk(TableBinder.java:302)
at org.hibernate.cfg.annotations.EntityBinder.bindJoinToPersistentClass(EntityBinder.java:523)
at org.hibernate.cfg.annotations.EntityBinder.createPrimaryColumnsToSecondaryTable(EntityBinder.java:513)
at org.hibernate.cfg.annotations.EntityBinder.finalSecondaryTableBinding(EntityBinder.java:444)
at org.hibernate.cfg.SecondaryTableSecondPass.doSecondPass(SecondaryTableSecondPass.java:25)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:320)
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1115)
at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1225)
at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:159)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:854)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:191)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:253)
... 5 more
Java Result: 1 |
au vu de l'exception, il n'arrive pas à trouver la colonne code dans account!?
merci par avance pour votre aide