Hi Peter,

I don't know if you are interested in none standard mapping technologies.

We are using EMF for our domain models and have written our custom
mapping (generated out of a DSL).

The main structure of usage can be seen in [1] and working similar to
MyBatis but the idea is:
a) each domain object has a Mapper-Interface [2]
b) the mapper interface with the database (select,update,insert,delete)
c) the mappers internally communicate e.g. to lazily load attributes
   see e.g. [3]

The nice thing about it is that domain code only knows the mapper &
domain objects but has no idea how the mapping to the database really works.

The complete system is using OSGi-Services for configuration (e.g.
db-connection), extensions (which mappers are available) and
customization (use a different connection pooling tech, caching lib,
bytecode weaver, ...).

There are currently 2 "hacks" to run on OSGi:
* c3p0 does not allow me to set a classloader to load the SQL-Driver so
  i had to create a fragement to get the JDBC-Driver in.
* cglib would use the wrong classpath so we are setting our customer
  classloader

In our case we have a DSL to generate the mappers from them e.g.[4] for
the Person mapping but one could write this by hand if someone wants to ;-)

Like I said it's fairly special solution but works very well for us
maybe it is interesting to you. For is improved performance & memory
footprint against Hibernate which we used before significantly!

Tom

[1]https://github.com/BestSolution-at/emap/blob/master/at.bestsolution.persistence.sample/src/at/bestsolution/persistence/sample/ContactBookSample.java
[2]https://github.com/BestSolution-at/emap/tree/master/at.bestsolution.persistence.sample.model.emap/src-gen/sample
[3]https://github.com/BestSolution-at/emap/blob/master/at.bestsolution.persistence.sample.model.emap/src-gen/sample/java/PersonMapperFactory.java
[4]https://github.com/BestSolution-at/emap/blob/master/at.bestsolution.persistence.sample.model.emap/src/sample/Person.emap

On 25.11.13 13:41, Peter Kriens wrote:
> I am doing some research on OSGi and persistence and I find the whole Java 
> persistence story quite confusing and complex. Part of my problem is that I 
> see lots of frameworks but it is quite hard to see code that really uses 
> those frameworks. Virtually all tutorials and examples look highly contrived 
> and seem to totally ignore issues like caching, security and seem to be 
> rather lax concerning transactions.  
> 
> I wonder if people in this forum could share with me a typical production 
> source file showing:
> 
>       How entities are defined
>       The persistent use of the entity, i.e. the part where the SQL will be 
> generated. I.e. places where the PersistenceManager, EntityManager, SQL 
> generation is used
>       How results are cached
> 
> A single source or class file per issue is best. Adding a small description 
> how you use persistence (Aries, JPA, JDO, JDBC, etc), the primary issues you 
> face, and describe your environment is highly appreciated. 
> 
> I know from my own experience that there is often a feeling that your own 
> code is not up for showing to others but please send me the raw unadulterated 
> code; I need to see how it is today, not how you think it should be. 
> Obviously I am not interested in what the code does or where it is used so 
> feel free to remove comments (if any!) and change names. I am just looking 
> for a couple of hundred of real world samples to extract the patterns that 
> are actually popular in our industry. 
> 
> Obviously I will not share that code with anyone and treat it fully 
> confidential. Also would appreciate a little description how you use 
> persistence in OSGi.
> 
> So in this case, do not ask what the OSGi can do for you, but for once, ask 
> what you can do for the OSGi! ;-)
> 
> Please? Come on, it only takes 3 minutes. Send your 4 files to: 
> peter.kri...@aqute.biz
> 
> Kind regards,
> 
>       Peter Kriens
> 
> 
> 
> _______________________________________________
> equinox-dev mailing list
> equinox-dev@eclipse.org
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
> 

_______________________________________________
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to