These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: OpenSessionInViewFilter using 2 sessions?
PostPosted: Thu May 12, 2005 8:12 am 
Beginner
Beginner

Joined: Fri Apr 15, 2005 3:30 pm
Posts: 46
Location: Fortaleza, Brazil
Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp

Hibernate version:
2.1.8

Mapping documents:

The main Entity Object:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping
>
<class
name="com.siemens.swa.domain.Activity"
table="ACTIVITY"
dynamic-update="false"
dynamic-insert="false"
select-before-update="false"
optimistic-lock="version"
>

<id
name="id"
column="ACTIVITY_ID"
type="java.lang.Long"
>
<generator class="native"/>
</id>

<many-to-one
name="equipment"
class="com.siemens.swa.domain.Equipment"
cascade="save-update"
outer-join="auto"
update="true"
insert="true"
access="property"
column="equipment_id"
foreign-key="fk_activity_equipment"
/>

<many-to-one
name="veloxInfo"
class="com.siemens.swa.domain.ActivityVeloxInfo"
cascade="all"
outer-join="auto"
unique="true"
column="act_velox_info_id"
foreign-key="fk_activity_activityveloxinfo"
/>

<many-to-one
name="activityExecution"
class="com.siemens.swa.domain.ActivityExecution"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="property"
column="act_exec_id"
foreign-key="fk_activity_activityexecution"
/>

<property
name="promiseDate"
column="promise_date"
/>

<property
name="promiseTime"
column="promise_time"
/>

<property
name="promiseEndDate"
column="promise_end_date"
/>

<property
name="promiseEndTime"
column="promise_end_time"
/>

<property
name="openChecklist"
column="open_checklist"
/>

<many-to-one
name="scheduleInfo"
class="com.siemens.swa.domain.ActivitySchedule"
cascade="all"
outer-join="auto"
access="property"
column="ACT_SCH_ID"
unique="true"
foreign-key="fk_activity_activityschedule"
/>

<property
name="activityNumber"
column="activity_num"
not-null="true"
unique="true"
/>

<property
name="state"
type="com.siemens.swa.dao.ActivityStateUserType"
update="true"
insert="true"
access="property"
column="state"
length="10"
/>

<property
name="type"
type="com.siemens.swa.dao.ActivityTypeUserType"
update="true"
insert="true"
access="property"
column="type"
length="12"
/>

<many-to-one
name="priority"
cascade="none"
class="com.siemens.swa.domain.ActivityPriority"
outer-join="auto"
column="ACT_PRIORITY_ID"
foreign-key="fk_activity_activitypriority"
/>

<set
name="preventiveChecklist"
lazy="true"
cascade="all"
sort="unsorted"
>

<key
column="ACTIVITY_ID"
>
</key>

<one-to-many
class="com.siemens.swa.domain.PreventiveChecklist"
/>

</set>

<many-to-one
name="techniqueArea"
class="com.siemens.swa.domain.TechniqueArea"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="property"
column="TECHN_AREA_ID"
foreign-key="fk_activity_technique_area"
/>

<many-to-one
name="informer"
class="com.siemens.swa.domain.Informer"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="property"
column="INFORMER_ID"
foreign-key="fk_activity_informer"
/>

<property
name="targetType"
type="com.siemens.swa.dao.ActivityTargetTypeUserType"
update="true"
insert="true"
access="property"
column="target_id"
/>

<many-to-one
name="activityLocalInfo"
class="com.siemens.swa.domain.ActivityLocalInfo"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="property"
column="LOCAL_INFO_ID"
foreign-key="fk_activity_activitylocalinfo"
/>

<many-to-one
name="activityEquipmentInfo"
class="com.siemens.swa.domain.ActivityEquipmentInfo"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="property"
column="ACT_EQUIP_INFO_ID"
foreign-key="fk_activity_activityequipmentinfo"
/>

<property
name="associatedDocument"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="assoc_doc"
/>

<property
name="freeDescription"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="free_desc"
/>

<many-to-one
name="techniqueAreaRamification"
class="com.siemens.swa.domain.TechniqueAreaRamification"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="property"
column="TECHN_AREA_RAMIF_ID"
foreign-key="fk_activity_techniquearearamification"
/>

<many-to-one
name="clientInfo"
class="com.siemens.swa.domain.ActivityClientInfo"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="property"
column="ACT_CLIENT_INFO_ID"
foreign-key="fk_activity_activityclientinfo"
/>

<property
name="initialInterruptOfServiceDate"
column="initial_interrupt_date"
/>

<property
name="initialInterruptOfServiceTime"
column="initial_interrupt_time"
/>

<many-to-one
name="externalInfo"
class="com.siemens.swa.domain.ExternalInfo"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="property"
column="EXTERNAL_INFO_ID"
foreign-key="fk_activity_externalinfo"
/>

<many-to-one
name="category"
class="com.siemens.swa.domain.ActivityCategory"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="property"
column="CATEGORY_ID"
foreign-key="fk_activity_activitycategory"
/>

<many-to-one
name="corretiveInfo"
class="com.siemens.swa.domain.CorretiveInfo"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="property"
column="CORRETIVE_INFO_ID"
foreign-key="fk_activity_correctiveinfo"
/>
<many-to-one
name="reserver"
class="com.siemens.swa.domain.User"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="property"
column="RESERVER_ID"
/>

<property
name="reserved"
type="java.lang.Boolean"
update="true"
insert="true"
not-null="true"
access="property"
column="RESERVED"
/>

<set
name="technicians"
table="TECHNICIAN_ACTIVITY"
cascade="save-update"
sort="unsorted"
>

<key
column="ACTIVITY_ID"
>
</key>

<many-to-many
class="com.siemens.swa.domain.Technician"
column="tcn_id"
outer-join="auto"
/>

</set>

</class>

</hibernate-mapping>

The Association that is lazy, and therefore throwing:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping
>
<class
name="com.siemens.swa.domain.ActivityExecution"
table="ACTIVITY_EXECUTION"
optimistic-lock="version"
>

<id
name="id"
column="ACT_EXECUTION_ID"
type="java.lang.Long"
>
<generator class="native"/>
</id>

<property
name="date"
column="DATE"
/>

<property
name="time"
column="TIME"
/>

<many-to-one
name="technician"
class="com.siemens.swa.domain.Technician"
cascade="none"
outer-join="auto"
access="property"
foreign-key="fk_activityexecution_technician"
column="TECHNICIAN_ID"
unique="false"
/>

<many-to-one
name="dispatcher"
class="com.siemens.swa.domain.Dispatcher"
cascade="none"
outer-join="auto"
access="property"
column="DISPATCHER_ID"
unique="false"
foreign-key="fk_activityexecution_dispatcher"
/>

<property
name="status"
type="com.siemens.swa.dao.ActivityExecutionStatusUserType"
update="true"
insert="true"
access="property"
column="STATUS"
not-null="true"
/>

<set
name="stateLog"
lazy="false"
cascade="all"
order-by="DATE ASC"
sort="unsorted"
>
<key
column="ACT_EXECUTION_ID"
>
</key>

<one-to-many
class="com.siemens.swa.domain.ActivityStateLog"
/>
</set>

<list name="tracks" lazy="false" table="TRACK_EXECUTION_INFO" cascade="all">
<key column="ACT_EXECUTION_ID"/>
<index column="TRK_EXEC_ORDER"></index>
<composite-element class="com.siemens.swa.domain.TrackingExecutionInfo">
<parent name="activityExecution"/>
<many-to-one name="trackingExecution"
class="com.siemens.swa.domain.TrackingExecution"
cascade="all"
column="TRK_EXECUTION_ID"
not-null="false"/>
<many-to-one name="executionClosing"
class="com.siemens.swa.domain.ExecutionClosing"
cascade="all"
column="EXEC_CLOSING_ID"
not-null="false"/>
</composite-element>
</list>

</class>

</hibernate-mapping>

Relevant part of serviceContext.xml - its a big app:

CODE:

<!-- BASIC SERVICE -->
<bean id="basicService"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property
name="transactionManager"><ref
bean="myTransactionManager"/></property>
<property name="target"><ref
bean="basicServ"/></property>
<property
name="transactionAttributes">
<props>
<prop
key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop
key="create">PROPAGATION_REQUIRED</prop>
<prop
key="update">PROPAGATION_REQUIRED</prop>
<prop
key="remove">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>

<!-- Implementação do Service para Basic -->
<bean id="basicServ"
class="com.siemens.swa.service.BasicServiceImpl">
<property name="basicDAO"><ref
bean="basicDAO"/></property>
</bean>


From applicationContext.xml

CODE:

<bean id="myTransactionManager"
class="org.springframework.orm.hibernate.HibernateTransactionManager">
<property name="sessionFactory"><ref
local="mySessionFactory"/></property>
</bean>

web.xml

CODE:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems,
Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp">

<filter>
<filter-name>hibernate</filter-name>

<filter-class>com.siemens.swa.util.persistence.HibernateSessionFilter</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>hibernate</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>

<filter-mapping>
<filter-name>hibernate</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>

<listener>

<listener-class>com.siemens.swa.session.SessionListener</listener-class>

</listener>

<servlet>
<servlet-name>action</servlet-name>

<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>definitions-config</param-name>

<param-value>/WEB-INF/tiles-defs.xml</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts-config.xml
</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>validate</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>

<!-- Inicializando o BeanFactory -->
<servlet>
<servlet-name>ObjectFactoryServlet</servlet-name>

<servlet-class>com.siemens.swa.util.support.ObjectFactoryServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>protected/index.html</welcome-file>
<welcome-file>protected/index.htm</welcome-file>
<welcome-file>protected/index.jsp</welcome-file>
</welcome-file-list>

<session-config>
<session-timeout>10</session-timeout>
</session-config>

<error-page>
<error-code>500</error-code>
<location>/protected/openError.jsp</location>
</error-page>

<taglib>
<taglib-uri>/WEB-INF/tld/webmenu.tld</taglib-uri>

<taglib-location>/WEB-INF/tld/webmenu.tld</taglib-location>
</taglib>
<taglib>

<taglib-uri>/WEB-INF/tld/struts-bean.tld</taglib-uri>

<taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
</taglib>
<taglib>

<taglib-uri>/WEB-INF/tld/struts-html.tld</taglib-uri>

<taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
</taglib>
<taglib>

<taglib-uri>/WEB-INF/tld/struts-logic.tld</taglib-uri>

<taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
</taglib>
<taglib>

<taglib-uri>/WEB-INF/tld/struts-bean-el.tld</taglib-uri>

<taglib-location>/WEB-INF/tld/struts-bean-el.tld</taglib-location>
</taglib>
<taglib>

<taglib-uri>/WEB-INF/tld/struts-html-el.tld</taglib-uri>

<taglib-location>/WEB-INF/tld/struts-html-el.tld</taglib-location>
</taglib>
<taglib>

<taglib-uri>/WEB-INF/tld/struts-logic-el.tld</taglib-uri>

<taglib-location>/WEB-INF/tld/struts-logic-el.tld</taglib-location>
</taglib>
<taglib>

<taglib-uri>/WEB-INF/tld/struts-nested.tld</taglib-uri>

<taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location>
</taglib>
<taglib>

<taglib-uri>/WEB-INF/tld/struts-template.tld</taglib-uri>

<taglib-location>/WEB-INF/tld/struts-template.tld</taglib-location>
</taglib>
<taglib>

<taglib-uri>/WEB-INF/tld/struts-tiles.tld</taglib-uri>

<taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tld/c.tld</taglib-uri>

<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tld/swa.tld</taglib-uri>

<taglib-location>/WEB-INF/tld/swa.tld</taglib-location>
</taglib>
<taglib>

<taglib-uri>http://jakarta.apache.org/taglibs/datagrid-1.0</taglib-uri>

<taglib-location>/WEB-INF/tld/taglibs-datagrid.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>

<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
<taglib>

<taglib-uri>http://java.sun.com/jsp/jstl/functions</taglib-uri>

<taglib-location>/WEB-INF/tld/fn.tld</taglib-location>
</taglib>

<!-- Arquivo de mensagens p/ internacionalizacao-->
<context-param>

<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>ApplicationResources</param-value>
</context-param>
<context-param>
<param-name>application</param-name>
<param-value>ApplicationResources</param-value>
</context-param>
</web-app>




Code between sessionFactory.openSession() and session.close():

using Spring's OpenSessionInViewFilter:

public class HibernateSessionFilter extends OpenSessionInViewFilter
implements Filter, Logable {

protected Session getSession(SessionFactory sessionFactory)
throws DataAccessResourceFailureException {
Session session = SessionFactoryUtils.getSession(sessionFactory, true);
session.setFlushMode(FlushMode.AUTO);
return session;
}

protected void closeSession(Session session, SessionFactory sessionFactory) {
if (session != null && session.isOpen() && session.isConnected()) {
try {
session.flush();
} catch (HibernateException e) {
throw new RuntimeException("Failed to flush session before close: " + e.getMessage(), e);
}
}
super.closeSession(session, sessionFactory);
}
}

My DAO Code:
public class BasicDAOImpl extends HibernateDaoSupport implements BasicDAO {

...

public Object findById(Class entityClass, Long id) {
System.out.println("isAllowCreate: "+ getHibernateTemplate().isAllowCreate());


try {
SessionFactory sf = getHibernateTemplate().getSessionFactory();
Session session = getSession();
Object result = getHibernateTemplate().get(entityClass, id);
return result;
}
catch (Exception e) {System.out.println(e.getStackTrace()); }

return null;
}
}

Exception occurs here in Struts Action:

List tracks = new ArrayList();
if (activity.getActivityExecution() != null) {
tracks = activity.getActivityExecution().getTracks();
}

Full stack trace of any exception that occurs:
May 12, 2005 7:54:14 AM net.sf.hibernate.proxy.LazyInitializer initializeWrapExceptions
SEVERE: Exception initializing proxy
net.sf.hibernate.HibernateException: Could not initialize proxy - the owning Session was closed
at net.sf.hibernate.proxy.LazyInitializer.initialize(LazyInitializer.java:47)
at net.sf.hibernate.proxy.LazyInitializer.initializeWrapExceptions(LazyInitializer.java:60)
at net.sf.hibernate.proxy.LazyInitializer.getImplementation(LazyInitializer.java:164)
at net.sf.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:108)
at com.siemens.swa.domain.ActivityExecution$$EnhancerByCGLIB$$eb27eb0f.getTracks(<generated>)
at com.siemens.swa.action.TrackingExecutionOperationAction.openMainPage(TrackingExecutionOperationAction.java:181)
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:324)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:276)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:196)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:105)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:171)
at com.siemens.swa.util.persistence.HibernateSessionFilter.doFilterInternal(HibernateSessionFilter.java:98)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:702)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644)
at java.lang.Thread.run(Thread.java:534)

Name and version of the database you are using:
mysql 4.1
The generated SQL (show_sql=true):
N/A
Debug level Hibernate log excerpt:
unknown

Hi all,

I'm getting LazyInitializationException, though the session should be open via ThreadLocal and OpenSessionInViewFilter. My questions are:

1) I'm seeing different TimeStamps - using a debugger - on the session in the filter and in the DAO. Is that an absolute indication of different objects, or is there a better way to tell? The above code prints true on isAllowCreate in the DAO, not sure if that is relevant.

2) I seen a post where there were two SessionFactories open. How can I determine if that's my problem?

3) The above stacktrace shows no sign of the filter, is that a good clue that the filter session is not used?

4) The code works fine in my Service Layer, but throws in the Action layer. Given the above configuration, any ideas to try?


Thanks,
iksrazal


Top
 Profile  
 
 Post subject:
PostPosted: Thu May 12, 2005 8:23 am 
Beginner
Beginner

Joined: Fri Apr 15, 2005 3:30 pm
Posts: 46
Location: Fortaleza, Brazil
Sorry but my two hbm.xml files were from the wrong version - please reference these:

The main entity:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping
>
<class
name="com.siemens.swa.domain.Activity"
table="ACTIVITY"
dynamic-update="false"
dynamic-insert="false"
select-before-update="false"
optimistic-lock="version"
lazy="true"
batch-size="6"
>

<id
name="id"
column="ACTIVITY_ID"
type="java.lang.Long"
>
<generator class="native"/>
</id>

<many-to-one
name="equipment"
class="com.siemens.swa.domain.Equipment"
cascade="save-update"
outer-join="auto"
update="true"
insert="true"
access="property"
column="equipment_id"
foreign-key="fk_activity_equipment"
/>

<many-to-one
name="veloxInfo"
class="com.siemens.swa.domain.ActivityVeloxInfo"
cascade="all"
outer-join="auto"
unique="true"
column="act_velox_info_id"
foreign-key="fk_activity_activityveloxinfo"
/>

<many-to-one
name="activityExecution"
class="com.siemens.swa.domain.ActivityExecution"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="property"
column="act_exec_id"
foreign-key="fk_activity_activityexecution"
/>

<property
name="promiseDate"
column="promise_date"
/>

<property
name="promiseTime"
column="promise_time"
/>

<property
name="promiseEndDate"
column="promise_end_date"
/>

<property
name="promiseEndTime"
column="promise_end_time"
/>

<property
name="openChecklist"
column="open_checklist"
/>

<many-to-one
name="scheduleInfo"
class="com.siemens.swa.domain.ActivitySchedule"
cascade="all"
outer-join="auto"
access="property"
column="ACT_SCH_ID"
unique="true"
foreign-key="fk_activity_activityschedule"
/>

<property
name="activityNumber"
column="activity_num"
not-null="true"
unique="true"
/>

<property
name="state"
type="com.siemens.swa.dao.ActivityStateUserType"
update="true"
insert="true"
access="property"
column="state"
length="10"
/>

<property
name="type"
type="com.siemens.swa.dao.ActivityTypeUserType"
update="true"
insert="true"
access="property"
column="type"
length="12"
/>

<many-to-one
name="priority"
cascade="none"
class="com.siemens.swa.domain.ActivityPriority"
outer-join="auto"
column="ACT_PRIORITY_ID"
foreign-key="fk_activity_activitypriority"
/>

<set
name="preventiveChecklist"
lazy="true"
cascade="all"
sort="unsorted"
batch-size="6"
outer-join="auto"
>

<key
column="ACTIVITY_ID"
>
</key>

<one-to-many
class="com.siemens.swa.domain.PreventiveChecklist"
/>

</set>

<many-to-one
name="techniqueArea"
class="com.siemens.swa.domain.TechniqueArea"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="property"
column="TECHN_AREA_ID"
foreign-key="fk_activity_technique_area"
/>

<many-to-one
name="informer"
class="com.siemens.swa.domain.Informer"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="property"
column="INFORMER_ID"
foreign-key="fk_activity_informer"
/>

<property
name="targetType"
type="com.siemens.swa.dao.ActivityTargetTypeUserType"
update="true"
insert="true"
access="property"
column="target_id"
/>

<many-to-one
name="activityLocalInfo"
class="com.siemens.swa.domain.ActivityLocalInfo"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="property"
column="LOCAL_INFO_ID"
foreign-key="fk_activity_activitylocalinfo"
/>

<many-to-one
name="activityEquipmentInfo"
class="com.siemens.swa.domain.ActivityEquipmentInfo"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="property"
column="ACT_EQUIP_INFO_ID"
foreign-key="fk_activity_activityequipmentinfo"
/>

<property
name="associatedDocument"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="assoc_doc"
/>

<property
name="freeDescription"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="free_desc"
/>

<many-to-one
name="techniqueAreaRamification"
class="com.siemens.swa.domain.TechniqueAreaRamification"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="property"
column="TECHN_AREA_RAMIF_ID"
foreign-key="fk_activity_techniquearearamification"
/>

<many-to-one
name="clientInfo"
class="com.siemens.swa.domain.ActivityClientInfo"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="property"
column="ACT_CLIENT_INFO_ID"
foreign-key="fk_activity_activityclientinfo"
/>

<property
name="initialInterruptOfServiceDate"
column="initial_interrupt_date"
/>

<property
name="initialInterruptOfServiceTime"
column="initial_interrupt_time"
/>

<many-to-one
name="externalInfo"
class="com.siemens.swa.domain.ExternalInfo"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="property"
column="EXTERNAL_INFO_ID"
foreign-key="fk_activity_externalinfo"
/>

<many-to-one
name="category"
class="com.siemens.swa.domain.ActivityCategory"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="property"
column="CATEGORY_ID"
foreign-key="fk_activity_activitycategory"
/>

<many-to-one
name="corretiveInfo"
class="com.siemens.swa.domain.CorretiveInfo"
cascade="all"
outer-join="auto"
update="true"
insert="true"
access="property"
column="CORRETIVE_INFO_ID"
foreign-key="fk_activity_correctiveinfo"
/>
<many-to-one
name="reserver"
class="com.siemens.swa.domain.User"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="property"
column="RESERVER_ID"
/>

<property
name="reserved"
type="java.lang.Boolean"
update="true"
insert="true"
not-null="true"
access="property"
column="RESERVED"
/>

<set
name="technicians"
table="TECHNICIAN_ACTIVITY"
cascade="save-update"
sort="unsorted"
lazy="true"
batch-size="6"
outer-join="auto"
>

<key
column="ACTIVITY_ID"
>
</key>

<many-to-many
class="com.siemens.swa.domain.Technician"
column="tcn_id"
outer-join="auto"
/>

</set>

</class>

</hibernate-mapping>

The association with the problem:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping
>
<class
name="com.siemens.swa.domain.ActivityExecution"
table="ACTIVITY_EXECUTION"
dynamic-update="false"
dynamic-insert="false"
select-before-update="false"
optimistic-lock="version"
lazy="true"
batch-size="6"
>

<id
name="id"
column="ACT_EXECUTION_ID"
type="java.lang.Long"
>
<generator class="native"/>
</id>

<property
name="date"
column="DATE"
/>

<property
name="time"
column="TIME"
/>

<many-to-one
name="technician"
class="com.siemens.swa.domain.Technician"
cascade="none"
outer-join="auto"
access="property"
foreign-key="fk_activityexecution_technician"
column="TECHNICIAN_ID"
unique="false"
/>

<many-to-one
name="dispatcher"
class="com.siemens.swa.domain.Dispatcher"
cascade="none"
outer-join="auto"
access="property"
column="DISPATCHER_ID"
unique="false"
foreign-key="fk_activityexecution_dispatcher"
/>

<property
name="status"
type="com.siemens.swa.dao.ActivityExecutionStatusUserType"
update="true"
insert="true"
access="property"
column="STATUS"
not-null="true"
/>

<set
name="stateLog"
lazy="true"
cascade="all"
order-by="DATE ASC"
sort="unsorted"
batch-size="6"
outer-join="auto"
>
<key
column="ACT_EXECUTION_ID"
>
</key>

<one-to-many
class="com.siemens.swa.domain.ActivityStateLog"
/>
</set>

<list name="tracks" lazy="true" batch-size="6" outer-join="auto" table="TRACK_EXECUTION_INFO" cascade="all">
<key column="ACT_EXECUTION_ID"/>
<index column="TRK_EXEC_ORDER"></index>
<composite-element class="com.siemens.swa.domain.TrackingExecutionInfo">
<parent name="activityExecution"/>
<many-to-one name="trackingExecution"
class="com.siemens.swa.domain.TrackingExecution"
cascade="all"
column="TRK_EXECUTION_ID"
not-null="false"
outer-join="auto"/>
<many-to-one name="executionClosing"
class="com.siemens.swa.domain.ExecutionClosing"
cascade="all"
column="EXEC_CLOSING_ID"
not-null="false"
outer-join="auto"/>
</composite-element>
</list>

</class>

</hibernate-mapping>


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.