I have a JSF application and I use tomcat 6. I want to save object calling a method from my GUI but the fragment of the following code return false without giving an exception. It's impossible because it must return true if all goes well !!! In the code there are not other return statement.
I suppose I have some problem with session timeout or somethig like this.
Hibernate version: 3
Full stack trace of any exception that occurs:NO EXCEPTION
Name and version of the database you are using:ORACLE 9
Code between sessionFactory.openSession() and session.close():
Code:
Session session = null;
Transaction transaction = null;
boolean success = false;
try {
session = HibernateUtil.currentSession();
transaction = session.beginTransaction();
VodTariffplan tp = current;
//set id of the tariff plan
VodTariffplanId idtp = tp.getId();
//set creation date of tariff plan
tp.setCreationDate(java.util.GregorianCalendar.getInstance().getTime());
//set of the latest baseline available
VodTpBaseline baseline = tp.getVodTpBaseline();
if(baseline == null || baseline.getBaselineId() == null){
baseline = (VodTpBaseline) session.createQuery("from VodTpBaseline where startDate = (select max(startDate) from VodTpBaseline)").uniqueResult();
tp.setVodTpBaseline(baseline);
}
//save object
Set<VodTpServiceFee> serviceFees = tp.getVodTpServiceFees();
tp.setVodTpServiceFees(new HashSet<VodTpServiceFee>());
Set<VodTpService> vodModelZoneDefs = tp.getVodTpServices();
tp.setVodTpServices(new HashSet<VodTpService>());
idtp = (VodTariffplanId)session.save(tp);
//set of services fee
for(VodTpServiceFee o : serviceFees){
if(o != null){
o.setCreationDate(java.util.GregorianCalendar.getInstance().getTime());
o.setVodTariffplan(tp);
tp.getVodTpServiceFees().add(o);
session.save(o);
}
o = null;
}
serviceFees = null;
//set of services
for(VodTpService o : vodModelZoneDefs){
VodTpServiceId oid = o.getId();
oid.setTariffplanId(idtp.getTariffplanId());
oid.setTariffplanVersion(idtp.getTariffplanVersion());
o.setVodService((VodService) session.load(VodService.class, oid.getServiceId()));
o.setCreationDate(java.util.GregorianCalendar.getInstance().getTime());
o.setVodTariffplan(tp);
tp.getVodTpServices().add(o);
Set<VodTpServiceDiscount> discounts = o.getVodTpServiceDiscounts();
o.setVodTpServiceDiscounts(new HashSet<VodTpServiceDiscount>());
Set<VodTpTrafficRating> ratings = o.getVodTpTrafficRatings();
o.setVodTpTrafficRatings(new HashSet<VodTpTrafficRating>());
oid = (VodTpServiceId)session.save(o);
for(VodTpServiceDiscount d : discounts){
d.setVodTpService(o);
o.getVodTpServiceDiscounts().add(d);
session.save(d);
d = null;
}
discounts = null;
for(VodTpTrafficRating r : ratings){
r.setVodTpService(o);
o.getVodTpTrafficRatings().add(r);
Set<VodTpTrafficRatingDef> ratingDef = r.getVodTpTrafficRatingDefs();
r.setVodTpTrafficRatingDefs(new HashSet<VodTpTrafficRatingDef>());
VodTpTrafficRatingId rId = (VodTpTrafficRatingId) session.save(r);
for(VodTpTrafficRatingDef rd : ratingDef){
rd.getId().setRatingId(rId.getRatingId());
rd.getId().setRatingVersion(rId.getRatingVersion());
rd.setVodTpTrafficRating(r);
r.getVodTpTrafficRatingDefs().add(rd);
session.save(rd);
rd = null;
}
ratingDef = null;
r = null;
}
ratings = null;
}
session.save(tp);
transaction.commit();
success = true;
super.current = null;
} catch (Exception e) {
e.printStackTrace();
logger.error("errore durante il salvataggio del modello zona",e);
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,e.getMessage(),""));
if(transaction != null) {
transaction.rollback();
}
} finally {
HibernateUtil.closeSession();
return success;
}
Mapping documents:
[code]<class name="it.reply.wrb.minerva.orm.model.VodUser" table="VOD_USER">
<id name="userId" type="string">
<column name="USER_ID" length="25" />
<generator class="assigned" />
</id>
<property name="creationDate" type="date">
<column name="CREATION_DATE" length="7" />
</property>
<property name="locked" type="char">
<column name="LOCKED" length="1" />
</property>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodBic" table="VOD_BIC">
<id name="bicId" type="string">
<column name="BIC_ID" length="30" />
<generator class="assigned" />
</id>
<many-to-one name="vodSire" class="it.reply.wrb.minerva.orm.model.VodSire" fetch="join" lazy="false">
<column name="SIRE_ID" length="30" not-null="false" />
</many-to-one>
<property name="descr" type="string">
<column name="DESCR" length="255" />
</property>
<property name="sync" type="char">
<column name="SYNC" length="1" />
</property>
<set name="vodTpTrafficRatingDefPeaks" inverse="true">
<key>
<column name="PEAK_BIC_ID" length="30" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpTrafficRatingDef" />
</set>
<set name="vodTpTrafficRatingDefOffPeaks" inverse="true">
<key>
<column name="OFFPEAK_BIC_ID" length="30" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpTrafficRatingDef" />
</set>
<set name="vodTpServiceDiscounts" inverse="true">
<key>
<column name="BIC_ID" length="30" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpServiceDiscount" />
</set>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodCanvas" table="VOD_CANVAS" >
<id name="canvasId" type="string">
<column name="CANVAS_ID" length="30" />
<generator class="assigned" />
</id>
<property name="descr" type="string">
<column name="DESCR" length="30" />
</property>
<property name="canvasDate" type="date">
<column name="CANVAS_DATE" length="7" />
</property>
<set name="vodTpCanvases" inverse="true" lazy="false" fetch="join">
<key>
<column name="CANVAS_ID" length="30" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpCanvas" />
</set>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodContract" table="VOD_CONTRACT" >
<id name="id" type="it.reply.wrb.minerva.orm.model.VodContractPkType">
<column name="CONTRACT_ID" length="30" not-null="true" />
<column name="CONTRACT_VERSION" precision="22" scale="0" not-null="true" />
<generator class="it.reply.wrb.minerva.orm.model.VodContractGenerator" />
</id>
<property name="lastModDate" type="date">
<column name="LAST_MOD_DATE" length="7" />
</property>
<set name="vodSires" table="VOD_SIRE_CONTRACT">
<key>
<column name="CONTRACT_ID" length="30" not-null="true" />
<column name="CONTRACT_VERSION" precision="22" scale="0" not-null="true" />
</key>
<many-to-many entity-name="it.reply.wrb.minerva.orm.model.VodSire">
<column name="SIRE_ID" length="30" not-null="true" />
</many-to-many>
</set>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodDayset" table="VOD_DAYSET" >
<id name="daysetId" type="string">
<column name="DAYSET_ID" length="30" />
<generator class="assigned" />
</id>
<property name="mon" type="char">
<column name="MON" length="1" />
</property>
<property name="tue" type="char">
<column name="TUE" length="1" />
</property>
<property name="wed" type="char">
<column name="WED" length="1" />
</property>
<property name="thu" type="char">
<column name="THU" length="1" />
</property>
<property name="fri" type="char">
<column name="FRI" length="1" />
</property>
<property name="sat" type="char">
<column name="SAT" length="1" />
</property>
<property name="sun" type="char">
<column name="SUN" length="1" />
</property>
<set name="vodModelTimeDefs" inverse="true">
<key>
<column name="DAYSET_ID" length="30" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodModelTimeDef" />
</set>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodTpServiceDiscount" table="VOD_TP_SERVICE_DISCOUNT">
<id name="discountId" type="long">
<column name="DISCOUNT_ID" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">SEQ_VOD_TP_SERVICE_ID</param>
</generator>
</id>
<many-to-one name="vodTpService" class="it.reply.wrb.minerva.orm.model.VodTpService" fetch="select">
<column name="TARIFFPLAN_ID" length="30" not-null="true" />
<column name="TARIFFPLAN_VERSION" precision="22" scale="0" not-null="true" />
<column name="SERVICE_ID" length="30" not-null="true" />
</many-to-one>
<many-to-one name="vodBic" class="it.reply.wrb.minerva.orm.model.VodBic" fetch="join" lazy="false">
<column name="BIC_ID" length="30" not-null="true" />
</many-to-one>
<!--many-to-one name="vodService" class="it.reply.wrb.minerva.orm.model.VodService" fetch="join" lazy="false">
<column name="SERVICE_ID" length="30" not-null="true" />
</many-to-one-->
<property name="discountType" type="string">
<column name="DISCOUNT_TYPE" length="30" not-null="true" />
</property>
<property name="threshold" type="string">
<column name="THRESHOLD" length="30" not-null="true" />
</property>
<property name="discountTarget" type="string">
<column name="DISCOUNT_TARGET" length="30" not-null="true" />
</property>
<property name="amount" type="double">
<column name="AMOUNT" precision="126" scale="0" not-null="true" />
</property>
<property name="creationDate" type="date">
<column name="CREATION_DATE" length="7" />
</property>
<property name="updateDate" type="date">
<column name="UPDATE_DATE" length="7" />
</property>
<!--set name="vodTpServices" inverse="true" fetch="join" lazy="false">
<key>
<column name="MODEL_DISCOUNT_ID" length="30" />
<column name="MODEL_DISCOUNT_VERSION" precision="22" scale="0" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpService" />
</set-->
</class>
<!--class name="it.reply.wrb.minerva.orm.model.VodModelDiscount" table="VOD_MODEL_DISCOUNT" lazy="false">
<id name="id" type="it.reply.wrb.minerva.orm.model.VodModelDiscountPkType">
<column name="MODEL_DISCOUNT_ID" length="30" not-null="true" />
<column name="MODEL_DISCOUNT_VERSION" precision="22" scale="0" not-null="true" />
<generator class="it.reply.wrb.minerva.orm.model.VodModelDiscountGenerator" />
</id>
<many-to-one name="vodBic" class="it.reply.wrb.minerva.orm.model.VodBic" fetch="join" lazy="false">
<column name="BIC_ID" length="30" not-null="true" />
</many-to-one>
<many-to-one name="vodService" class="it.reply.wrb.minerva.orm.model.VodService" fetch="join" lazy="false">
<column name="SERVICE_ID" length="30" not-null="true" />
</many-to-one>
<property name="discountType" type="string">
<column name="DISCOUNT_TYPE" length="30" not-null="true" />
</property>
<property name="threshold" type="string">
<column name="THRESHOLD" length="30" not-null="true" />
</property>
<property name="discountTarget" type="string">
<column name="DISCOUNT_TARGET" length="30" not-null="true" />
</property>
<property name="amount" type="double">
<column name="AMOUNT" precision="126" scale="0" not-null="true" />
</property>
<property name="creationDate" type="date">
<column name="CREATION_DATE" length="7" />
</property>
<property name="updateDate" type="date">
<column name="UPDATE_DATE" length="7" />
</property>
<set name="vodTpServices" inverse="true" fetch="join" lazy="false">
<key>
<column name="MODEL_DISCOUNT_ID" length="30" />
<column name="MODEL_DISCOUNT_VERSION" precision="22" scale="0" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpService" />
</set>
</class-->
<class name="it.reply.wrb.minerva.orm.model.VodModelPrice" table="VOD_MODEL_PRICE" >
<id name="id" type="it.reply.wrb.minerva.orm.model.VodModelPricePkType">
<column name="MODEL_PRICE_ID" length="30" not-null="true" />
<column name="MODEL_PRICE_VERSION" precision="22" scale="0" not-null="true" />
<generator class="it.reply.wrb.minerva.orm.model.VodModelPriceGenerator" />
</id>
<property name="ratingType" type="string">
<column name="RATING_TYPE" length="30" not-null="true" />
</property>
<property name="metricType" type="string">
<column name="METRIC_TYPE" length="30" not-null="true" />
</property>
<property name="measureUnit" type="string">
<column name="MEASURE_UNIT" length="30" not-null="true" />
</property>
<property name="metricUnitCsfee" type="long">
<column name="METRIC_UNIT_CSFEE" precision="126" scale="0" not-null="true" />
</property>
<property name="priceCsfee" type="double">
<column name="PRICE_CSFEE" precision="126" scale="0" />
</property>
<property name="creationDate" type="date">
<column name="CREATION_DATE" length="7" />
</property>
<property name="updateDate" type="date">
<column name="UPDATE_DATE" length="7" />
</property>
<set name="vodTpTrafficRatingDefPeaks" inverse="true" lazy="false" fetch="join">
<key>
<column name="PEAK_MODEL_PRICE_ID" length="30" />
<column name="PEAK_MODEL_PRICE_VERSION" precision="22" scale="0" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpTrafficRatingDef" />
</set>
<set name="vodTpTrafficRatingDefOffPeaks" inverse="true" lazy="false" fetch="join">
<key>
<column name="OFFPEAK_MODEL_PRICE_ID" length="30" />
<column name="OFFPEAK_MODEL_PRICE_VERSION" precision="22" scale="0" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpTrafficRatingDef" />
</set>
<set name="vodModelPriceRatings" fetch="join" lazy="false" inverse="true" cascade="all-delete-orphan">
<key>
<column name="MODEL_PRICE_ID" length="30" not-null="true"/>
<column name="MODEL_PRICE_VERSION" precision="22" scale="0" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodModelPriceRating" />
</set>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodModelPriceRating" table="VOD_MODEL_PRICE_RATING" >
<id name="id" type="long">
<column name="MODEL_PRICE_RATING_ID" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">SEQ_VOD_MODEL_P_R_ID</param>
</generator>
</id>
<property name="metricUnit" type="long">
<column name="METRIC_UNIT" precision="126" scale="0" not-null="true" />
</property>
<property name="chargeBase" type="long">
<column name="CHARGE_BASE" precision="126" scale="0" not-null="true" />
</property>
<property name="price" type="double">
<column name="PRICE" precision="126" scale="0" not-null="true" />
</property>
<property name="thresholdStart" type="long">
<column name="THRESHOLD_START" precision="126" scale="0" not-null="true" />
</property>
<property name="thresholdEnd" type="long">
<column name="THRESHOLD_END" precision="126" scale="0" not-null="true" />
</property>
<property name="creationDate" type="date">
<column name="CREATION_DATE" length="7" />
</property>
<property name="updateDate" type="date">
<column name="UPDATE_DATE" length="7" />
</property>
<many-to-one name="vodModelPrice" class="it.reply.wrb.minerva.orm.model.VodModelPrice" fetch="join" lazy="false">
<column name="MODEL_PRICE_ID" length="30" not-null="true" />
<column name="MODEL_PRICE_VERSION" precision="22" scale="0" not-null="true" />
</many-to-one>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodModelTime" table="VOD_MODEL_TIME" >
<id name="id" type="it.reply.wrb.minerva.orm.model.VodModelTimePkType">
<column name="MODEL_TIME_ID" length="30" not-null="true" />
<column name="MODEL_TIME_VERSION" precision="22" scale="0" not-null="true" />
<generator class="it.reply.wrb.minerva.orm.model.VodModelTimeGenerator" />
</id>
<property name="creationDate" type="date">
<column name="CREATION_DATE" length="7" />
</property>
<property name="updateDate" type="date">
<column name="UPDATE_DATE" length="7" />
</property>
<set name="vodTpServices" inverse="true" fetch="join" lazy="false">
<key>
<column name="MODEL_TIME_ID" length="30" />
<column name="MODEL_TIME_VERSION" precision="22" scale="0" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpService" />
</set>
<set name="vodModelTimeDefs" fetch="join" lazy="false" inverse="true" cascade="all-delete-orphan">
<key>
<column name="MODEL_TIME_ID" length="30" not-null="true" />
<column name="MODEL_TIME_VERSION" precision="22" scale="0" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodModelTimeDef" />
</set>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodModelTimeDef" table="VOD_MODEL_TIME_DEF" >
<composite-id name="id" class="it.reply.wrb.minerva.orm.model.VodModelTimeDefId">
<key-property name="modelTimeId" type="string">
<column name="MODEL_TIME_ID" length="30" />
</key-property>
<key-property name="modelTimeVersion" type="long">
<column name="MODEL_TIME_VERSION" precision="22" scale="0" />
</key-property>
<key-property name="daysetId" type="string">
<column name="DAYSET_ID" length="30" />
</key-property>
<key-property name="timeintervaleId" type="string">
<column name="TIMEINTERVALE_ID" length="30" />
</key-property>
</composite-id>
<many-to-one name="vodDayset" class="it.reply.wrb.minerva.orm.model.VodDayset" update="false" insert="false" fetch="select">
<column name="DAYSET_ID" length="30" not-null="true" />
</many-to-one>
<many-to-one name="vodTimeinterval" class="it.reply.wrb.minerva.orm.model.VodTimeinterval" update="false" insert="false" fetch="select">
<column name="TIMEINTERVALE_ID" length="30" not-null="true" />
</many-to-one>
<many-to-one name="vodModelTime" class="it.reply.wrb.minerva.orm.model.VodModelTime" insert="false" update="false" fetch="join" lazy="false">
<column name="MODEL_TIME_ID" length="30" not-null="true" />
<column name="MODEL_TIME_VERSION" precision="22" scale="0" not-null="true" />
</many-to-one>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodModelZone" table="VOD_MODEL_ZONE" >
<id name="id" type="it.reply.wrb.minerva.orm.model.VodModelZonePkType">
<column name="MODEL_ZONE_ID" length="30" not-null="true" />
<column name="MODEL_ZONE_VERSION" precision="22" scale="0" not-null="true" />
<generator class="it.reply.wrb.minerva.orm.model.VodModelZoneGenerator" />
</id>
<many-to-one name="vodModelZoneSpecial" class="it.reply.wrb.minerva.orm.model.VodModelZoneSpecial" lazy="false" fetch="join">
<column name="MODEL_ZONE_SPECIAL_ID" length="30" />
<column name="MODEL_ZONE_SPECIAL_VERSION" precision="22" scale="0" />
</many-to-one>
<many-to-one name="vodService" class="it.reply.wrb.minerva.orm.model.VodService" lazy="false" fetch="join">
<column name="SERVICE_ID" length="30" />
</many-to-one>
<many-to-one name="vodRoamingModelZoneRef" class="it.reply.wrb.minerva.orm.model.VodModelZone" lazy="false" fetch="join">
<column name="ZONE_ID" length="30" />
<column name="ZONE_VERSION" precision="22" scale="0" />
</many-to-one>
<property name="creationDate" type="date">
<column name="CREATION_DATE" length="7" />
</property>
<property name="updateDate" type="date">
<column name="UPDATE_DATE" length="7" />
</property>
<property name="roamingStatus" type="char">
<column name="ROAMING_STATUS" length="1" />
</property>
<set name="vodTpServices" inverse="true">
<key>
<column name="MODEL_ZONE_ID" length="30" />
<column name="MODEL_ZONE_VERSION" precision="22" scale="0" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpService" />
</set>
<set name="vodTpServiceRoamings" inverse="true">
<key>
<column name="MODEL_ZONE_ROAMING_ID" length="30" />
<column name="MODEL_ZONE_ROAMING_VERSION" precision="22" scale="0" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpService" />
</set>
<set name="vodModelZoneDefs" fetch="join" lazy="false" inverse="true" cascade="all-delete-orphan">
<key>
<column name="MODEL_ZONE_ID" length="30" not-null="true" />
<column name="MODEL_ZONE_VERSION" precision="22" scale="0" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodModelZoneDef" />
</set>
<set name="vodRoamingModelZoneRefs" inverse="true" lazy="false" fetch="join">
<key>
<column name="ZONE_ID" length="30" />
<column name="ZONE_VERSION" precision="22" scale="0" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodModelZone" />
</set>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodModelZoneDef" table="VOD_MODEL_ZONE_DEF" >
<id name="id" type="long">
<column name="ID" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">SEQ_VOD_MODEL_ZONE_DEF_ID</param>
</generator>
</id>
<many-to-one name="vodModelZone" class="it.reply.wrb.minerva.orm.model.VodModelZone" fetch="join" lazy="false">
<column name="MODEL_ZONE_ID" length="30" not-null="true" />
<column name="MODEL_ZONE_VERSION" precision="22" scale="0" not-null="true" />
</many-to-one>
<property name="description" type="string">
<column name="DESCRIPTION" length="30" />
</property>
<property name="routingNumber" type="string">
<column name="ROUTING_NUMBER" length="30" />
</property>
<property name="diwType" type="string">
<column name="DIW_TYPE" length="30" />
</property>
<!--property name="origin" type="string">
<column name="ORIGIN" length="30" />
</property-->
<property name="termination" type="string">
<column name="TERMINATION" length="30" />
</property>
<property name="ZOrigin" type="string">
<column name="Z_ORIGIN" length="30" />
</property>
<property name="ZDestination" type="string">
<column name="Z_DESTINATION" length="30" />
</property>
<property name="apn" type="string">
<column name="APN" length="30" />
</property>
<property name="zone" type="string">
<column name="ZONE" length="30" />
</property>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodModelZoneRoaming" table="VOD_MODEL_ZONE_ROAMING" >
<id name="id" type="string">
<column name="ID" length="30" />
<generator class="assigned" />
</id>
<property name="operator" type="string">
<column name="OPERATOR" length="30" not-null="true" />
</property>
<property name="mccMnc" type="string">
<column name="MCC_MNC" length="30" not-null="true" />
</property>
<property name="iac" type="string">
<column name="IAC" length="30" not-null="true" />
</property>
<property name="cc" type="string">
<column name="CC" length="30" not-null="true" />
</property>
<property name="mscAddr" type="string">
<column name="MSC_ADDR" length="30" />
</property>
<property name="msrn" type="string">
<column name="MSRN" length="30" />
</property>
<property name="ZOrigin" type="string">
<column name="Z_ORIGIN" length="30" not-null="true" />
</property>
<property name="descr" type="string">
<column name="DESCR" length="255" />
</property>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodModelZoneSpecial" table="VOD_MODEL_ZONE_SPECIAL">
<id name="id" type="it.reply.wrb.minerva.orm.model.VodModelZoneSpecialPkType">
<column name="MODEL_ZONE_SPECIAL_ID" length="30" not-null="true" />
<column name="MODEL_ZONE_SPECIAL_VERSION" precision="22" scale="0" not-null="true" />
<generator class="it.reply.wrb.minerva.orm.model.VodModelZoneSpecialGenerator" />
</id>
<property name="creationDate" type="date">
<column name="CREATION_DATE" length="7" />
</property>
<property name="updateDate" type="date">
<column name="UPDATE_DATE" length="7" />
</property>
<set name="vodModelZones">
<key>
<column name="MODEL_ZONE_SPECIAL_ID" length="30" />
<column name="MODEL_ZONE_SPECIAL_VERSION" precision="22" scale="0" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodModelZone" />
</set>
<set name="vodModelZoneSpecialDefs" lazy="false" fetch="join" inverse="true" cascade="all-delete-orphan">
<key>
<column name="MODEL_ZONE_SPECIAL_ID" length="30" not-null="true" />
<column name="MODEL_ZONE_SPECIAL_VERSION" precision="22" scale="0" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodModelZoneSpecialDef" />
</set>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodModelZoneSpecialDef" table="VOD_MODEL_ZONE_SPECIAL_DEF" >
<id name="id" type="long">
<column name="ID" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">SEQ_VOD_MODEL_ZONE_S_DEF_ID</param>
</generator>
</id>
<many-to-one name="vodModelZoneSpecial" class="it.reply.wrb.minerva.orm.model.VodModelZoneSpecial" fetch="join" lazy="false">
<column name="MODEL_ZONE_SPECIAL_ID" length="30" not-null="true" />
<column name="MODEL_ZONE_SPECIAL_VERSION" precision="22" scale="0" not-null="true" />
</many-to-one>
<property name="description" type="string">
<column name="DESCRIPTION" length="30" />
</property>
<property name="serviceCode" type="string">
<column name="SERVICE_CODE" length="30" />
</property>
<property name="routingNumber" type="string">
<column name="ROUTING_NUMBER" length="30"/>
</property>
<property name="digits" type="string">
<column name="DIGITS" length="30" not-null="true" />
</property>
<property name="termination" type="string">
<column name="TERMINATION" length="30" not-null="true" />
</property>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodService" table="VOD_SERVICE" >
<id name="serviceId" type="string">
<column name="SERVICE_ID" length="30" />
<generator class="assigned" />
</id>
<property name="serviceType" type="string">
<column name="SERVICE_TYPE" length="30" />
</property>
<property name="description" type="string">
<column name="DESCRIPTION" length="255" />
</property>
<set name="vodTpServiceDiscounts" inverse="true" fetch="join" lazy="false">
<key>
<column name="SERVICE_ID" length="30" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpServiceDiscount" />
</set>
<set name="vodTpServices" inverse="true">
<key>
<column name="SERVICE_ID" length="30" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpService" />
</set>
<set name="vodModelZones" inverse="true">
<key>
<column name="SERVICE_ID" length="30" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodModelZone" />
</set>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodSire" table="VOD_SIRE" >
<id name="sireId" type="string">
<column name="SIRE_ID" length="30" />
<generator class="assigned" />
</id>
<many-to-one name="vodTariffplan" class="it.reply.wrb.minerva.orm.model.VodTariffplan" fetch="join" lazy="false">
<column name="TARIFFPLAN_ID" length="30" />
<column name="TARIFFPLAN_VERSION" precision="22" scale="0" />
</many-to-one>
<property name="description" type="string">
<column name="DESCRIPTION" length="30" />
</property>
<property name="insertDate" type="date">
<column name="INSERT_DATE" length="7" />
</property>
<property name="updateDate" type="date">
<column name="UPDATE_DATE" length="7" />
</property>
<set name="vodBics" inverse="true">
<key>
<column name="BIC_ID" length="30" not-null="false" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodBic" />
</set>
<set name="vodTpCanvases" inverse="true">
<key>
<column name="SIRE_ID" length="30" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpCanvas" />
</set>
<set name="vodContracts" inverse="true" table="VOD_SIRE_CONTRACT">
<key>
<column name="SIRE_ID" length="30" not-null="true" />
</key>
<many-to-many entity-name="it.reply.wrb.minerva.orm.model.VodContract">
<column name="CONTRACT_ID" length="30" not-null="true" />
<column name="CONTRACT_VERSION" precision="22" scale="0" not-null="true" />
</many-to-many>
</set>
<set name="vodSireTps" inverse="true">
<key>
<column name="SIRE_ID" length="30" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodSireTp" />
</set>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodSireTp" table="VOD_SIRE_TP" >
<composite-id name="id" class="it.reply.wrb.minerva.orm.model.VodSireTpId">
<key-property name="sireId" type="string">
<column name="SIRE_ID" length="30" />
</key-property>
<key-property name="tariffplanId" type="string">
<column name="TARIFFPLAN_ID" length="30" />
</key-property>
<key-property name="tariffplanVersion" type="long">
<column name="TARIFFPLAN_VERSION" precision="22" scale="0" />
</key-property>
</composite-id>
<many-to-one name="vodTariffplan" class="it.reply.wrb.minerva.orm.model.VodTariffplan" update="false" insert="false" fetch="join" lazy="false">
<column name="TARIFFPLAN_ID" length="30" not-null="true" />
<column name="TARIFFPLAN_VERSION" precision="22" scale="0" not-null="true" />
</many-to-one>
<many-to-one name="vodSire" class="it.reply.wrb.minerva.orm.model.VodSire" update="false" insert="false" fetch="select">
<column name="SIRE_ID" length="30" not-null="true" />
</many-to-one>
<property name="xmlData" type="string">
<column name="XML_DATA" length="30" />
</property>
<property name="insertDate" type="date">
<column name="INSERT_DATE" length="7" />
</property>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodTariffplan" table="VOD_TARIFFPLAN" >
<id name="id" type="it.reply.wrb.minerva.orm.model.VodTariffplanPkType">
<column name="TARIFFPLAN_ID" length="30" not-null="true"/>
<column name="TARIFFPLAN_VERSION" precision="22" scale="0" not-null="true" />
<generator class="it.reply.wrb.minerva.orm.model.VodTariffplanGenerator" />
</id>
<many-to-one name="vodTpBaseline" class="it.reply.wrb.minerva.orm.model.VodTpBaseline" fetch="select" lazy="false">
<column name="BASELINE_ID" length="30" not-null="true" />
</many-to-one>
<property name="commercialName" type="string">
<column name="COMMERCIAL_NAME" length="30" not-null="true" />
</property>
<property name="contractSubscriptionAmount" type="double">
<column name="CONTRACT_SUBSCR_AMOUNT" precision="126" scale="0" not-null="true" />
</property>
<property name="contractSubscriptionBic" type="string">
<column name="CONTRACT_SUBSCR_BIC" length="30" not-null="true" />
</property>
<property name="startDate" type="date">
<column name="START_DATE" length="7" />
</property>
<property name="endDate" type="date">
<column name="END_DATE" length="7" />
</property>
<property name="creationDate" type="date">
<column name="CREATION_DATE" length="7" />
</property>
<property name="updateDate" type="date">
<column name="UPDATE_DATE" length="7" />
</property>
<set name="vodSireTps" lazy="false" fetch="select" inverse="true">
<key>
<column name="TARIFFPLAN_ID" length="30" not-null="true" />
<column name="TARIFFPLAN_VERSION" precision="22" scale="0" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodSireTp" />
</set>
<set name="vodSires" lazy="false" fetch="select" inverse="true">
<key>
<column name="TARIFFPLAN_ID" length="30" not-null="true" />
<column name="TARIFFPLAN_VERSION" precision="22" scale="0" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodSire" />
</set>
<set name="vodTpServices" lazy="false" fetch="join" inverse="true" cascade="none">
<key>
<column name="TARIFFPLAN_ID" length="30" not-null="true" />
<column name="TARIFFPLAN_VERSION" precision="22" scale="0" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpService" />
</set>
<set name="vodTpCanvases" lazy="false" fetch="select" inverse="true">
<key>
<column name="TARIFFPLAN_ID" length="30" not-null="true" />
<column name="TARIFFPLAN_VERSION" precision="22" scale="0" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpCanvas" />
</set>
<set name="vodTpServiceFees" lazy="false" fetch="join" inverse="true" cascade="none">
<key>
<column name="TARIFFPLAN_ID" length="30" not-null="true" />
<column name="TARIFFPLAN_VERSION" precision="22" scale="0" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTpServiceFee" />
</set>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodTimeinterval" table="VOD_TIMEINTERVAL" >
<id name="timeintervaleId" type="string">
<column name="TIMEINTERVALE_ID" length="30" />
<generator class="assigned" />
</id>
<property name="peakStartTime" type="string">
<column name="PEAK_START_TIME" length="30" />
</property>
<property name="peakEndTime" type="string">
<column name="PEAK_END_TIME" length="30" />
</property>
<property name="offPeakStartTime" type="string">
<column name="OFF_PEAK_START_TIME" length="30" />
</property>
<property name="offPeakEndTime" type="string">
<column name="OFF_PEAK_END_TIME" length="30" />
</property>
<set name="vodModelTimeDefs" inverse="true">
<key>
<column name="TIMEINTERVALE_ID" length="30" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodModelTimeDef" />
</set>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodTpBaseline" table="VOD_TP_BASELINE" >
<id name="baselineId" type="string">
<column name="BASELINE_ID" length="30" />
<generator class="assigned" />
</id>
<property name="descr" type="string">
<column name="DESCR" length="30" />
</property>
<property name="startDate" type="date">
<column name="START_DATE" length="7" />
</property>
<set name="vodTariffplans" lazy="false" fetch="join" inverse="true" cascade="all-delete-orphan">
<key>
<column name="BASELINE_ID" length="30" not-null="true" />
</key>
<one-to-many class="it.reply.wrb.minerva.orm.model.VodTariffplan" />
</set>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodTpCanvas" table="VOD_TP_CANVAS" >
<composite-id name="id" class="it.reply.wrb.minerva.orm.model.VodTpCanvasId">
<key-property name="canvasId" type="string">
<column name="CANVAS_ID" length="30" />
</key-property>
<key-property name="sireId" type="string">
<column name="SIRE_ID" length="30" />
</key-property>
<key-property name="tariffplanId" type="string">
<column name="TARIFFPLAN_ID" length="30" />
</key-property>
<key-property name="tariffplanVersion" type="long">
<column name="TARIFFPLAN_VERSION" precision="22" scale="0" />
</key-property>
</composite-id>
<many-to-one name="vodCanvas" class="it.reply.wrb.minerva.orm.model.VodCanvas" update="false" insert="false" fetch="join" lazy="false">
<column name="CANVAS_ID" length="30" not-null="true" />
</many-to-one>
<many-to-one name="vodTariffplan" class="it.reply.wrb.minerva.orm.model.VodTariffplan" update="false" insert="false" fetch="join" lazy="false">
<column name="TARIFFPLAN_ID" length="30" not-null="true" />
<column name="TARIFFPLAN_VERSION" precision="22" scale="0" not-null="true" />
</many-to-one>
<many-to-one name="vodSire" class="it.reply.wrb.minerva.orm.model.VodSire" update="false" insert="false" fetch="select">
<column name="SIRE_ID" length="30" not-null="true" />
</many-to-one>
<property name="xmlData" type="string">
<column name="XML_DATA" length="30" />
</property>
<property name="insertDate" type="date">
<column name="INSERT_DATE" length="7" />
</property>
<property name="loadStatus" type="char">
<column name="LOAD_STATUS" length="1" />
</property>
<property name="loadTimestamp" type="date">
<column name="LOAD_TIMESTAMP" length="7" />
</property>
</class>
<class name="it.reply.wrb.minerva.orm.model.VodTpService" table="VOD_TP_SERVICE" >
<composite-id name="id" class="it.reply.wrb.minerva.orm.model.VodTpServiceId">
<key-property name="tariffplanId" type="string">
<column name="TARIFFPLAN_ID" length="30" />
</key-property>
<key-property name="tariffplanVersion" type="long">
<column name="TARIFFPLAN_VERSION" precision="22" scale="0" />
</key-property>
<key-property name="serviceId" type="string">
<column name="SERVICE_ID" length="30" />
</key-property>
</composite-id>
<many-to-one name="vodModelZone" class="it.reply.wrb.minerva.orm.model.VodModelZone" fetch="join" lazy="false">
<column name="MODEL_ZONE_ID" length="30" not-null="true" />
<column name="MODEL_ZONE_VERSION" precision="22" scale="0" not-null="true" />
</many-to-one>
<many-to-one name="vodModelZoneRoaming" class="it.reply.wrb.minerva.orm.model.VodModelZone" fetch="join" lazy="false">
<column name="MODEL_ZONE_ROAMING_ID" length="30" not-null="true" />
<column name="MODEL_ZONE_ROAMING_VERSION" precision="22" scale="0" not-null="true" />
</many-to-one>
<many-to-one name="vodModelTime" class="it.reply.wrb.minerva.orm.model.VodModelTime" fetch="join" lazy="false">
<column name="MODEL_TIME_ID" length="30" not-null="true" />
<column name="MODEL_TIME_VERSION" precision="22" scale="0" not-null="true" />
</many-to-one>
<many-to-one name="vodTariffplan" class="it.reply.wrb.minerva.orm.model.VodTariffplan" update="false" insert="false" fetch="select" lazy="false">
<column name="TARIFFPLAN_ID" length="30" not-null="true" />
<column name="TARIFFPLAN_VERSION" precision="22" scale="0" not-null="true" />
</many-to-one>
<!--many-to-one name="vodModelDiscount" class="it.reply.wrb.minerva.orm.model.VodModelDiscount" fetch="join" lazy="false">
<column name="MODEL_DISCOUNT_ID" length="30" />
<column name="MODEL_DISCOUNT_VERSION" precision="22" scale="0" />
</many-to-one-->
<many-to-one name="vodService" class="it.reply.wrb.minerva.orm.model.VodService" update="fa