users@glassfish.java.net

@ManyToOne in multiple jars with Glassfish/EclipseLink

From: <forums_at_java.net>
Date: Tue, 21 Jun 2011 15:52:41 -0500 (CDT)

I've got two jars, dog.jar and person.jar, both packaged as ejb modules
within a single ear. Dog.java is an Entity that references another Entity
Person.java via a OneToMany mapping on an "owner" field. Each jar has its own
persistence.xml, which reference a common persistence unit, but each
persistence.xml only contains the classes contained in that jar. Upon
startup, Glassfish complains: Exception Description: [class
com.example.dog.entities.Dog] uses a non-entity [class
com.example.person.entities.Person] as target entity in the relationship
attribute [field owner]. It seems to work if I add the Person class to the
dog jar's persistence.xml, but I don't like that at all. The Person class is
already defined in the persistence.xml of the person.jar, which is in same
named persistence unit, in the same ear, so it should find it at runtime! I
don't want to repeat myself. Plus, I use the handy Eclipse JPA tooling to
auto-sycnhronize the class names in the persistence.xml, and when I do that
it only finds the Dog.java when I run it on dog's persistence.xml. So I don't
want to have to hunt down all references and manually add them to
persistence.xml and worry about them getting blown away when I resynchronize.
Also I made sure I put the person ejb module before the dog ejb module in the
application.xml. This is my first foray into JPA and JEE, so I could be doing
something wrong... I drank the koolaid by reading books and articles but
nobody seems to ever show a good mutli-module enterprise example...

--
[Message sent by forum member 'kevinpauli']
View Post: http://forums.java.net/node/814658