Quoting Niclas Hedhman <[email protected]>:


Can you elaborate on what do you mean by this (I can't even guess)??
Perhaps you even have some pointer to articles describing what you are
talking about...

Because breaking out UoW et al into an extension is not easily
achievable in a usable fashion, so we would need to see "another side"
before even thinking of doing this.


Yeah, well the point is that there still yet to come plenty of articles about this project I am working with. And thus it's all a little bit hush-hush yet. :)

But, maybe I can explain it a little bit better.

Our software environment consists of multiple applications. They may be written in various programming languages. The integration architecture for that is already thought-through, so that is not an issue.

All the data is kept in a single repository (for now). The applications may access the data simultaneously, either reading it, or writing, or creating. Also, the applications may be interested in some piece of data, for which they receive notifications, when other application (or itself) does any kind of change.

The data integrity is extremely important, therefore we use SQL database. The way data is stored in it is spred over multiple schemas with different table design. The table design is fully dynamic, and it varies from schema to schema based on what kind of data is stored there. However, there does exist a logic based on which the data may be accessed in a uniform way. This makes it very unsuitable for Qi4j Entities as they are now, since a Qi4j Entity of type X with ID Y would need one kind of UPDATE statement, but Qi4j Entity of *same type* but *different ID* would need another kind of UPDATE statement.

Because of the software environment, the creation of data is very repository dependent. Basically, when committing a transaction holding the data creation statements, the resulting IDs of created data is returned back. So, we only know the real IDs *after* committing the transaction in which they were created.

Additionally, the actual ID's are currently consisting of three integers. And Qi4j's identity is just a String. It could be possible to somehow circumvent this with some hacks, but I think that would be very non-Qi4j way to do it.

Basically, ideal for this case, the Qi4j Core could either provide the way to "plug in" some implementation of Entity/UoW support, or the current Entity/UoW would need to be *extremely* extensible and customizable.

But, it is in no way really necessary. I understand that the usecase of Qi4j that I described is quite a niche one, and I don't expect anything to change in the Core. I still can use the Core and implement my own system for custom entity/UoW handling (very very tedious, but pretty much the only choice). The code generation and the application features (modules, layers, singletons of Services, Object/Transient/Value builders) of Qi4j is something that always will be used IMO.


_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to