[hibernate-dev] question
Max Rydahl Andersen
max.andersen at redhat.com
Fri Dec 28 12:17:28 EST 2007
ask in forum.
-max
>
>
> Hello to all,
> I am practicing with Hibernate and I have a problem with the management of the caching. Excuse my ignorance.
> The simple program that I have developed in order to try the caching's functionality gives me
> an output that I can't understand. The problem is that when the program is using the
> data, which is captured from the DB through the funzione load(), it behaves as if the data
> it was not in cache.Studying the handbook of Hibernate I saw that the data is inserted
> in cache every time is executed the load(), and that it is possible to use the function
> contain() in order to see if this data is effectively in cache, like it really ensues.
>
> This is the code fragment:
>
> private void spatialFactory(String[] args){
>
> config = new Configuration();
>
> config.configure();
> config.addClass(MultiPolygonEntity.class);
>
> Settings settings = config.buildSettings();
> System.out.println("Generating Data for Dialect: "+ settings.getDialect().getClass().getName());
>
> SessionFactory factory = config.buildSessionFactory();
> Session session = factory.openSession();
>
> Transaction tx = null;
>
> try{
> tx = session.beginTransaction();
> if(args[0].equals("store_mulpol")){
>
> geom = createMPolygon();
>
> for(long i=1; i<=gid; i++){
>
> MultiPolygonEntity MPolygon = (MultiPolygonEntity)session.load(MultiPolygonEntity.class,i);
>
> Geometry the_geom = MPolygon.getGeometry();
>
> if(geom.intersects(the_geom))throw new Exception();
> }
>
> MultiPolygonEntity MultiPolygon = new MultiPolygonEntity(gid+1,344,"Polygon",geom);
> session.save(MultiPolygon);
>
> tx.commit();
>
> }
> }
> ...
>
> }
>
>
> In the moment in which the program is executed, the instruction ' Geometry the_geom = MPolygon.getGeometry();' in order to use
> a property of the loaded object (geometry exactly), the output is the following:
>
> 22:22:27,975 DEBUG MemoryStore:138 - Cache_SpatialCache: Cache_SpatialMemoryStore miss for hsp.MultiPolygonEntity#1
> 22:22:27,975 DEBUG Cache:661 - Cache_Spatial cache - Miss
> Hibernate: select multipolyg0_.gid as gid0_0_, multipolyg0_.code as code0_0_, multipolyg0_.name as name0_0_, multipolyg0_.the_geom as the4_0_0_ from spatial multipolyg0_ where multipolyg0_.gid=?
> 22:22:28,053 DEBUG MemoryStore:138 - Cache_SpatialCache: Cache_SpatialMemoryStore miss for hsp.MultiPolygonEntity#1
> 22:22:28,053 DEBUG Cache:661 - Cache_Spatial cache - Miss
>
> To me it seems that, although the load() is executed, the data is not found in cache, even if the use of the function contain() results present.
> Do you know the reason ?
> I have shaped Hibernate with EhCacheProvider and in the rows of mapping I have set up one cache Read-Write.
>
> thanks,
>
> Tobia
> _________________________________________________________________
> Conosci Doretta? Contattala, è ora su Messenger!
> http://www.doretta82.it/banner/index.html
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
More information about the hibernate-dev
mailing list