Ujorm is an quick and easy-to-use ORM solution for Java with a small footprint. Some of its features are type safe parameters in queries, a memory overloading protection cache and relation mapping by Java code rather through proxy objects or entity states.
Why a new ORM mapping?
* framework has a type safe query language which allows the java compiler find a syntax error similar like a 4GL language
* never more a LazyInitialization exception though a lazy initialization is supported
* no confusing proxy business objects
* no list properties are supported but a special object called UjoIterator is designed for a collection. The UjoIterator provides a toList() method for example
* easy to configure the ORM model by java source code, optionally by annotations and a XML file
* great performance, e.g. multi SELECT is eight times faster in comparison with Hibernate
* small size of JAR file and no more library dependencies
Product's homepage
Here are some key features of "Ujorm":
· resources for ORM mapping can be a database table, view, or your own SQL SELECT
· JDBC query parameters are passed by a question notation to the PreparedStatement for a high security
· all persistent objects are based on the OrmUjo interface, namely on the OrmTable implementation
· internal object cache is based on the WeakHashMap class so that large transactions does not cause any OutOfMemoryException
· the API was inspired mainly by Canyenne and Hibernate frameworks. I would like to thank the authors for good work.
What's New in This Release: [ read full changelog ]
· The new Ujorm TransactionManager implementation is ready to use.
· Criterion object is serializable now.
· A new method Criterion.toStringFull() prints the condition including a domain name by example: Person(id EQ 3).
· A new method to print all information about the Key.toStringFull(true).
· The CSV parser and creator have an extended API.
· The AliasTable class supports building free SQL scripts using the Ujorm meta-model.
· A new ORM parameter MetaParams.INITIALIZATION_BATCH can specify a user initialization code.