Hi,
kann mir jemand der es auch versteht mal ein HibernateMapping Beispiel hier mit den dazugehörigen Beans angeben?
Und zwar sollte es folgendes können:
SystemLocale enthält Set an Title, AcademicTitle und Country. Jetzt soll z.B. beim Löschen eines Title die zugehörige SystemLocale nicht gelöscht werden. Aber beim Löschen der SystemLocale sollen alle Title, AcademicTitle und Country cascadierend mitgelöscht werden.
Mein versuch:
SystemLocale:
Title:
der Rest ist dito.
Ich bekomm jedesmal eine Exception:
oder irgendetwas mit not owner of session ....
kann mir jemand der es auch versteht mal ein HibernateMapping Beispiel hier mit den dazugehörigen Beans angeben?
Und zwar sollte es folgendes können:
SystemLocale enthält Set an Title, AcademicTitle und Country. Jetzt soll z.B. beim Löschen eines Title die zugehörige SystemLocale nicht gelöscht werden. Aber beim Löschen der SystemLocale sollen alle Title, AcademicTitle und Country cascadierend mitgelöscht werden.
Mein versuch:
SystemLocale:
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="ebooking.module.base.bean.system.SystemLocale" table="BASE_SYSTEM_LOCALE">
<id name="id" type="long">
<column name="ID" not-null="true"/>
<generator class="increment"/>
</id>
<property name="key" type="string" unique="true">
<column name="LOCALE_KEY" not-null="true"/>
</property>
<property name="language" type="string">
<column name="LANGUAGE" not-null="true"/>
</property>
<property name="countryName" type="string">
<column name="COUNTRY_NAME" not-null="true"/>
</property>
<set name="titles" table="BASE_SYSTEM_TITLE" inverse="true" cascade="save-update" lazy="true" sort="ebooking.module.base.hbm.HibernateComparator">
<key column="SYSTEM_LOCALE_KEY" property-ref="key"/>
<one-to-many class="ebooking.module.base.bean.system.Title"/>
</set>
<set name="academicTitles" table="BASE_SYSTEM_ACADEMIC_TITLE" inverse="true" cascade="save-update" lazy="true" sort="ebooking.module.base.hbm.HibernateComparator">
<key column="SYSTEM_LOCALE_KEY" property-ref="key"/>
<one-to-many class="ebooking.module.base.bean.system.AcademicTitle"/>
</set>
<set name="countries" table="BASE_SYSTEM_COUNTRY" inverse="true" cascade="save-update" lazy="true" sort="ebooking.module.base.hbm.HibernateComparator">
<key column="SYSTEM_LOCALE_KEY" property-ref="key"/>
<one-to-many class="ebooking.module.base.bean.system.Country"/>
</set>
</class>
</hibernate-mapping>
Title:
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="ebooking.module.base.bean.system.Title" table="BASE_SYSTEM_TITLE">
<id name="id" type="long">
<column name="ID" not-null="true"/>
<generator class="increment"/>
</id>
<property name="key" type="string">
<column name="TITLE_KEY" length="100" not-null="true"/>
</property>
<property name="name" type="string">
<column name="NAME" length="100" not-null="true"/>
</property>
<many-to-one name="systemLocale" column="SYSTEM_LOCALE_KEY" property-ref="key" class="ebooking.module.base.bean.system.SystemLocale" cascade="save-update" not-null="true"/>
</class>
</hibernate-mapping>
der Rest ist dito.
Ich bekomm jedesmal eine Exception:
Code:
org.springframework.orm.hibernate3.HibernateObjectRetrievalFailureException: deleted object would be re-saved by cascade (remove deleted object from associations): [ebooking.module.base.bean.system.SystemLocale#1]; nested exception is org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations): [ebooking.module.base.bean.system.SystemLocale#1]
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:605)
org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:570)
org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:482)
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:401)
org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTransactionAfterReturning(TransactionAspectSupport.java:256)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:67)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
$Proxy1.deleteSystemLocaleBySystemLocaleKey(Unknown Source)
ebooking.module.base.controller.SystemLocaleController.deleteSystemLocaleForm(SystemLocaleController.java:79)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:351)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:305)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:128)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:675)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:623)
org.springframework.web.servlet.FrameworkServlet.serviceWrapper(FrameworkServlet.java:384)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:344)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
oder irgendetwas mit not owner of session ....