When you specify insert="false" and update="false" in many-to-one element, you can include property element for the same column specified in many-to-one element. That means you have capability to set the value of application_id column using corresponding setter.
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="hibernate">
<class name="Submissions" table="submission">
<id name="submissionId" type="string" unsaved-value="null" >
<column name="submission_id" sql-type="raw(16)" not-null="true"/>
</id>
<property name="submissionNo">
<column name="submission_no" sql-type="VARCHAR2(5)" not-null="true"/>
</property>
<property name="createdTs">
<column name="created_ts" sql-type="Date" not-null="true"/>
</property>
<property name="lastModifiedTs">
<column name="last_modified_ts" sql-type="Date" not-null="true"/>
</property>
...... ....... ........ ...... ...
<property name="applicationId">
<column name="application_id" sql-type="VARCHAR2(5)" not-null="true"/>
</property>
<many-to-one name="application" insert="false" update="false" class="Application" column="application_id" />
</class>
</hibernate-mapping >
So now your code with slight modification is below
Code:
SessionFactory sessionFactory=HibernateFactory.buildsessionFactory();
Session session= sessionFactory.openSession();
Transaction tx=HibernateFactory.begintransaction(session);
Submissions oSub=new Submissions();
// How will I set application id in Submission which has many-to-one relationship to application table
oSub.setApplicationId( "007" ); // this sets the application id
oSub.setSubmissionNo("0005");
oSub.setCreatedTs(new java.util.Date());
oSub.setLastModifiedTs(new Date());
session.saveOrUpdate(oSub);
HibernateFactory.commitTransaction(tx);
System.out.println("Done");
HibernateFactory.close(session);
Below code gives you an idea how to persist both Application and Submission at the same time with a call to saveOrUpdate.
Code:
SessionFactory sessionFactory=HibernateFactory.buildsessionFactory();
Session session= sessionFactory.openSession();
Transaction tx=HibernateFactory.begintransaction(session);
Submissions oSub=new Submissions();
// How will I set application id in Submission which has many-to-one relationship to application table
oSub.setApplicationId( "00001" ); // this sets the application id
oSub.setSubmissionNo("0005");
oSub.setCreatedTs(new java.util.Date());
oSub.setLastModifiedTs(new Date());
Application application1 = new Application();
// populate properties including appId
application1.getSubmissions().add( application1 );
oSub.setApplication( application1 );
Application application2 = new Application();
// populate properties including appId
application1.getSubmissions().add( application2 );
oSub.setApplication( application2 );
session.saveOrUpdate(oSub);
HibernateFactory.commitTransaction(tx);
System.out.println("Done");
HibernateFactory.close(session);