I have experence a problem while mapping a legacy database when I am attempt to
use @ManyToOne using @JoinTable and the parent class is declaired with
@Inheritance(strategy=InheritanceType.JOINED). Here is a simplified version of
what I am attempting:
@Entity
| @Inheritance(strategy=InheritanceType.JOINED)
| @Table(name = "baseclass")
| public abstract class Baseclass implements java.io.Serializable {
|
| private String internalid;
|
| @Id
| @Column(name = "INTERNALID", unique = true, nullable = false,
insertable = true, updatable = true, length = 34)
| public String getInternalid() {
| return this.internalid;
| }
| public void setInternalid(String internalid) {
| this.internalid = internalid;
| }
| }
@Entity
| @Table(name = "parent")
| public class Parent extends Baseclass
| {
|
| private String name;
|
| public String getName(){
| return this.name;
| }
| public void setName(String name){
| this.name = name;
| }
| }
@Entity
| @Table(name = "child")
| public class Child implements java.io.Serializable {
|
| private String internalid;
| private String name;
| private Parent parent;
|
| @Id
| @Column(name = "INTERNALID", unique = true, nullable = false,
insertable = true, updatable = true, length = 34)
| public String getInternalid() {
| return this.internalid;
| }
| public void setInternalid(String internalid) {
| this.internalid = internalid;
| }
|
| public String getName(){
| return this.name;
| }
| public void setName(String name){
| this.name = name;
| }
|
| @ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
| @JoinTable(name="hierarchy",
| joinColumns = @JoinColumn( name="childinternalid"),
| inverseJoinColumns = @JoinColumn( name="parentinternalid"))
| public Parent getParent(){
| return this.parent;
| }
| public void setParent(Parent parent){
| this.parent = parent;
| }
| }
When I try this in JBOSSAS4.0.4GA I receive the following error:
14:24:09,268 ERROR [AssertionFailure] an assertion failure occured (this may
indicate a bug in Hibernate, but is more likely due to unsafe use of the
session)
| org.hibernate.AssertionFailure: Table hierarchy not found
| at
org.hibernate.persister.entity.JoinedSubclassEntityPersister.getTableId(JoinedSubclassEntityPersister.java:444)
| at
org.hibernate.persister.entity.JoinedSubclassEntityPersister.<init>(JoinedSubclassEntityPersister.java:225)
| at
org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:58)
| at
org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:223)
| at
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1213)
| at
org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:631)
| at
org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:760)
| at
org.hibernate.ejb.Ejb3Configuration.createContainerEntityManagerFactory(Ejb3Configuration.java:350)
| at
org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:119)
| at
org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:264)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
|
| ...
If I switch the association to @OneToMany on the parent side there is no error.
I have also experenced this same error using bidirectional @OneToOne with an
association table where either end is using
@Inheritance(strategy=InheritanceType.JOINED), and if I make it unidirectional
on the end without @Inheritance(strategy=InheritanceType.JOINED) it does not
throw the error.
I'm not sure what I am doing wrong, and thanks for all the help this forum
gives me.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3945463#3945463
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3945463
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user