Hi!
I want to put into cache memory a table which has a primary key
composite of various (two) fields. In repository.xml this table is
mapped as follow:
<class-descriptor class="com.brujulatelecom.srv.vo.ParametroOficinaVO"
table="T_SRV_PARAMETROOFICINA">
<object-cache
class="com.brujulatelecom.srv.util.ObjectCacheOSCacheImpl"/>
<field-descriptor id="1" name="pofCodigo" column="POF_CODIGO"
jdbc-type="INTEGER"/>
<field-descriptor id="2" name="pofOfiCodigo" column="POF_OFICODIGO"
jdbc-type="INTEGER" primarykey="true"/>
<field-descriptor id="3" name="pofParCodigo" column="POF_PARCODIGO"
jdbc-type="INTEGER" primarykey="true"/>
</class-descriptor>
In DAO class, the code is:
PersistenceBroker broker = null;
ParametroOficinaVO parametroOficinaVO = null;
broker = ServiceLocator.getInstance().findBroker();
// start caching management
parametroOficinaVO = new ParametroOficinaVO();
parametroOficinaVO.setPofParCodigo(new Integer(parCodigo));
parametroOficinaVO.setPofOfiCodigo(new Integer(ofiCodigo));
Identity oid = new Identity(parametroOficinaVO, broker);
ObjectCache cache = broker.serviceObjectCache();
parametroOficinaVO = (ParametroOficinaVO)cache.lookup(oid);
// final caching management
if (parametroOficinaVO==null){
System.out.println("parametroOficinaVO not in cache:
" + oid);
Criteria criteria = new Criteria();
criteria.addEqualTo("pofParCodigo", parCodigo);
criteria.addEqualTo("pofOfiCodigo", ofiCodigo);
Query query = new
QueryByCriteria(ParametroOficinaVO.class, criteria);
parametroOficinaVO =
(ParametroOficinaVO)broker.getObjectByQuery(query);
} else {
System.out.println("parametroOficinaVO in cache: " + oid);
}
Is this correct?
Thank you for advance!!
Joan Miralles Ramis
Junior Programmer
Development Department
Brújula Telecom
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]