Bonjour,

j'essaie de suivre un exemple d'un bouquin, pour faire un @ManyToOne en utilisant une table de jointure:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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