1 Reply Latest reply on Aug 11, 2010 6:29 AM by manik

    questions on JPA-like API

    yelin666

      The JPA-like API is planned for 5.0, and I got couple questions on what will be supported:

      1. The current query capabilities are based on Hibernate Search, and it's quite powerful and support most use cases. However, the JPA is more a standard from API perspective. So in addition to Hibernate Search based queries, are you going to support Java Persistence Query Language and Criteria API?
      2. In JPA, objects are mapped to relational tables, and associated objects are handled without duplicating the information. Currently in Infinispan, the associated object is handled as embedded objects, and when the cache is persisted to a JDBC datastore the objects are saved as blobs. I understand that's efficient from a cache solution perspective. But with JPA-like support in 5.0, when the JDBC datastore is used, how will the persisted data be organized? Will the objects be mapped to relational table?
        • 1. Re: questions on JPA-like API
          manik

          The current query capabilities are based on Hibernate Search, and it's quite powerful and support most use cases. However, the JPA is more a standard from API perspective. So in addition to Hibernate Search based queries, are you going to support Java Persistence Query Language and Criteria API?

          Yes, this is the plan.  See ISPN-221.

           

          In JPA, objects are mapped to relational tables, and associated objects are handled without duplicating the information. Currently in Infinispan, the associated object is handled as embedded objects, and when the cache is persisted to a JDBC datastore the objects are saved as blobs. I understand that's efficient from a cache solution perspective. But with JPA-like support in 5.0, when the JDBC datastore is used, how will the persisted data be organized? Will the objects be mapped to relational table?

          Yes they will.  Essentially the plan is to break down object structures and store primitives in AtomicMaps within the cache.  As such, what you will see in any cache store would be a mapping of primitives.

           

          FYI, we hope to leverage as much of Hibernate as possible for the object deconstruction/session management, and provide a mapping layer so that Hibernate does Object <--> Key/Value mapping in addition to Object <--> relational mapping.  If you want to monitor the progress on this, we have a prototype (very experimental at this stage!) on http://github.com/emmanuelbernard/hibernate-core-ogm/tree/ogm