What Is Missing?

Even though iBATIS offers a very good performance-to-code complexity ratio, several features are missing. Perhaps the most annoying absence is lack of support for persistent enumerations and object canonicalization.

Take a User domain object for example. Usually a limited number of Roles are used in the system. If a User object has a userRole property, a select statement that returned 1,000 User objects also creates 1,000 UserRole objects, even though most of the UserRole objects actually represent the same Role. This is very inefficient and results in a lot of memory being used up. This is a similar situation to java.lang.Boolean where you can create 1,000 Booleans that represent Boolean.TRUE. Even though these 1,000 objects represent the same information, you have 1,000 distinct objects. Another side effect is that you have to use the equals(Object) method to compare the values whereas if you had 1,000 references to the same object, you could use the == operator.

Finally, a persistent enumeration would be a nice addition to iBATIS. Hibernate allows you to use persistent enumeration. This is actually an object that has public static <T> fromInt() and public int toInt() methods, which return an int value that represents value in the enumeration. Hibernate, however, creates instance of the object.

The issues just discussed are the only problems in iBATIS we can think of, which makes it an exceptional DAO framework.



Pro Spring
Pro Spring
ISBN: 1590594614
EAN: 2147483647
Year: 2006
Pages: 189

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net