How to use UJO objects in the ORM framework Hibernate?
What may be the reason to replace traditional POJO objects by more invasive alternative?
Friday, October 23, 2009
Sunday, August 30, 2009
Ujorm - new high performance ORM for Java
Let me to introduce a new open source ORM framework for Java called Ujorm. I have created the ORM solution especially for a rapid development of persistent layer, however the first performance tests show that some types of SELECT query are very fast in comparison to its competitors. Next features are: the type safe parameters in the query, small memory footprint and the minimum size of the entire solution.
After the publication of UJO architecture it became clear that it would be difficult to gain the favor of developers, without more services. Therefore I started to form a new ORM solution that would evaluate its interesting features and I believe now this result has much to offer.
I hope that you will not be angry if I compare my solution with the popular Hibernate. The motivation presentation is here:After the publication of UJO architecture it became clear that it would be difficult to gain the favor of developers, without more services. Therefore I started to form a new ORM solution that would evaluate its interesting features and I believe now this result has much to offer.
http://ujoframework.org/presentation/
Results of benchmark tests are in the following table, details of testing can be found in the presentation.
| Action | Ujorm 0.90 | Hibernate 3.3.1 | Ratio |
|---|---|---|---|
| single select | 0.37 s | 0.82 s | 2.2 |
| empty selects | 1.2 s | 156 s | 126.6 |
| multi select | 21 s | 173 s | 8.1 |
| insert | 10 s | 12 s | 1.2 |
| delete | 82 s | 215 s | 2.6 |
| update | 8 s | 4 s | 0.5 |
Descriptions of actions:
- single select - a one big select for all order items (with a condition)
- empty selects - 2000 selects with the empty result - where a condition contains different parameter values
- multi select - many different selects to emulate a server application or statements with no optimization
- insert - insert 2000 orders, 14000 items and 1 user
- delete - execution many statements to delete all table rows
- update - modify and save a loaded BO
ORM home page:
http://ujoframework.org/orm/
Link to the source code:
https://sourceforge.net/projects/ujoframework/files/
Link to FAQ:
http://ujoframework.org/dokuwiki/doku.php?id=orm_faq
Your suggestions and comments are welcome. If you are interested to cooperation please contact the author at: ujoframework(at)gmail.com .
Pavel
Pavel
Friday, May 29, 2009
UJO Framework release 0.85
The UJO Framework was essentially extended to version 0.85. This release can be used in a Maven structure project by the dependency tag:
<dependency>
<groupid>org.ujoframework</groupid>
<artifactid>ujo-core</artifactid>
<version>0.85.00</version>
</dependency>
The most importat changes are:
- the first Map & Ujo implementation called MapImplUjo is published
- new annotation @XmlElementBody supports a XML body value now
- List serialization of the plain objects is supported, e.g. List<Integer>
- text serialization of the type java.sql.Date is supported
- interface UjoProperty has new methods for a direction of sorting: isAscending(), descending()
- new method UjoPropertyList.isItemTypeOf(Class) tests that property type is a type (or subtype) of the parameter
- new interface UjoMiddle extends the Ujo interface in four methods (set, get, setText, getText)
Monday, October 27, 2008
jWorkSheet 0.81 is released
The last changes:
- the better security of your personal data: if the data.xml file is missing or is empty, the application tries to restore a backup and show an info dialog
- the first application parameter can specify a data directory (for a portable launching e.g.)
- sorting the project description is allowed by a click on the table header
- UJO Framework release 0.81 is used
Sunday, September 7, 2008
UJO Framework release 0.80
The UJO Framework was essentially extended to version 0.80. Some news are:
- the new interface UjoExt is available for a better comfort to developers. The interface supports for example a chaining of properties or setters
- optimized deserialization of UJO objects, which is now faster as JAXB 2.1.
- simplification of some methods by a new interface UjoAction
UJO Framework provides objects with a different architecture from JavaBeans. The original idea was a toy with generic data types of Java 5.0 however over time it appears, that the architecture has some exciting features:
- an easy object introspection without a heavy PropertyDescriptor implementation
- a transfer of the UJO properties (not values) by a collection to a method
- the core of the building has two interfaces for an easy implementation
These properties open up new possibilities for the use in the J2EE mainly in a production of generic operations over objects. Framework contains some tools for managing the UJO object in addition. See a short motivational presentation for more information.
You can find a link to a reference application called jWorkSheet on the project home page.
The jWorkSheet is a project time tracker desktop application which uses the architecture UJO objects consistently for all persistent objects.
I welcome all feedback and comments.
Thursday, May 22, 2008
jWorkSheet 0.78.1 is released
The jWorkSheet is a personal desktop application intended for a tracking time of your projects, data are presented in a spreadsheet like format. It is a a referential application of UJO Framework.
The changes:
The changes:
- new report "Detail report in a table format" is done
- complementary user CSS definition is supported in application parameters
- there is possible to modify a header date format of the new report by new parameter "DateReportFormat2"
- report design was improved by CSS style
- better performance of data saving
Monday, May 12, 2008
Do you need a quick XML persistence?
I have done a performance test of XML serialization on the latest version UJO Framework 0.74. The results are very positive especially in comparison with the speed of XML serialization (XMLEncoder, XMLDecoder) implemented in JRE 6.0.
Table of results:
Environment: Windows XP, procesor Intel DuoCore 1.66 MHz, JRE 1.6.0_04.
Test description:
Conclusion: The XML serialization implemented in UJO Framework is approximately five times faster in comparison with the XML persistence implemented in JRE 6.0. The UJO speed of serialization is slightly smaller than the speed of the great JAXB framwork. Any comments are welcome.
Table of results:
| Implementation | Time of serialization [sec] | Time of deserialization [sec] | Total ratio [%] |
|---|---|---|---|
| ArrayUjo | 0.343 | 0.500 | 18.5 |
| MapUjo | 0.344 | 0.531 | 19.2 |
| PojoUjo | 0.383 | 0.516 | 19.7 |
| JavaBean | 3.832 | 1.726 | 100.0 |
| JAXB 2.1 | 0,203 | 0,484 | 15,1 |
Environment: Windows XP, procesor Intel DuoCore 1.66 MHz, JRE 1.6.0_04.
Test description:
- All business objects are the same type (in one test) and they have got a recursively hierarchy up to the fourth level
- Each business object contains 11 attributes, including one relational type of ArrayList
- The total number of business objects was 6000
- Test was performed by class XmlSpeedTest2 (a second pass) of a group of JUnit tests included to the project
- Published the results are an arithmetic mean of the values from four tests
Conclusion: The XML serialization implemented in UJO Framework is approximately five times faster in comparison with the XML persistence implemented in JRE 6.0. The UJO speed of serialization is slightly smaller than the speed of the great JAXB framwork. Any comments are welcome.
Subscribe to:
Posts (Atom)

