learn java
The moose likes EJB and other Java EE Technologies and the fly likes Problem with @ManyToOne on a CompositeId Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of The Software Craftsman this week in the Agile forum!
JavaRanch » Java Forums » Java » EJB and other Java EE Technologies
Bookmark "Problem with @ManyToOne on a CompositeId " Watch "Problem with @ManyToOne on a CompositeId " New topic

Problem with @ManyToOne on a CompositeId

Sergio Silva

Joined: May 03, 2006
Posts: 5
I have a Database that i need to persist and that i can't change his structure.

With reverse engineering i created the persistence model, but now i'm with problems:

Class EventActions:

The Pk Class:

The OperationInterval class:

When i validate the model, it gives the error:

org.hibernate.AnnotationException: Column name operationintervalid of Eventactions not found in JoinColumns.referencedColumnName

Caused by: org.hibernate.AnnotationException: Column name operationintervalid of com.criticalsoftware.chums.data.entity.hums.HumsBumeventact
ions not found in JoinColumns.referencedColumnName
at org.hibernate.cfg.annotations.TableBinder.bindFk(TableBinder.java:319)
at org.hibernate.cfg.FkSecondPass.doSecondPass(FkSecondPass.java:64)
at org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:474)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:295)
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1115)
at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1269)
at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:150)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:88
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:416)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:126)
at org.ow2.easybeans.persistence.JPersistenceContext.init(JPersistenceContext.java:72)
at org.ow2.easybeans.persistence.JPersistenceContext.<init>(JPersistenceContext.java:65)
at org.ow2.easybeans.persistence.PersistenceUnitManager.addExtraPersistenceUnitInfos(PersistenceUnitManager.java:8
at org.ow2.easybeans.persistence.PersistenceUnitManager.<init>(PersistenceUnitManager.java:64)
at org.ow2.easybeans.persistence.xml.PersistenceXmlFileAnalyzer.analyzePersistenceXmlFile(PersistenceXmlFileAnalyzer.java:143)
at org.ow2.easybeans.container.JContainer3.start(JContainer3.java:271)
at org.ow2.easybeans.osgi.ejbjar.Activator.startContainer(Activator.java:129)
at org.ow2.easybeans.osgi.ejbjar.Activator.start(Activator.java:91)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:999)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:993)
... 14 more
Nested Exception:

So... I commented the joincolumn anotation... and the result is:

org.hibernate.HibernateException: Missing column: operationintervalsByOperationintervalid_operationIntervalId in yogurt.dbx.EventActions

How can i solve this problem ? I can't change the database.
[ October 13, 2007: Message edited by: Sergio Silva ]
Shailesh Kini
Ranch Hand

Joined: Oct 17, 2001
Posts: 153
Hi Sergio,

In Operationinterval the mappedBy property in @OneToMany annotation should be an attribute in class A that references back to class Operationinterval.

so @OneToMany should be changed to...

public Collection<A> getAByOperationalintervalid() {
return asByOperationintervalid;

At the same time please make sure that the case of columns are the same as declared in your class files. You do require the @JoinColumn.

If there are still some issues, it would be helpful if you paste the entire source code here.

Shailesh Kini.
Sergio Silva

Joined: May 03, 2006
Posts: 5
Yes, i have the code as you tell me to, but have the same problem...

I don't have the rest of the code now, just later, can you guys remember what could be wrong until i post all code?

Sergio Silva

Joined: May 03, 2006
Posts: 5
The code from the original post is updated!

It's all code there now!

Can you guys help me?
Shailesh Kini
Ranch Hand

Joined: Oct 17, 2001
Posts: 153
Hello Sergio,

I am trying a sample on my end and will post my findings. In the meantime if you have a solution please post it here, it might help other ranchers.
[ October 17, 2007: Message edited by: Shailesh Kini ]
Have you tried LearnNowOnline? http://www.learnnowonline.com/
subject: Problem with @ManyToOne on a CompositeId