Bonjour,
j'essaie de suivre un exemple d'un bouquin, pour faire un @ManyToOne en utilisant une table de jointure:
j'utilise hibernate comme provider avec:
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 { // ... } }
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<property name="hibernate.hbm2ddl.auto">update</ property>
au vu de l'exception, il n'arrive pas à trouver la colonne code dans account!?
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
merci par avance pour votre aide
Partager