Now that we have some code in most areas of cayenne project, we had a
little concept check discussion with Misha and Andriy. Here is some notes.
FIRST CUT:
1. Data Maps (Misha):
- defined participating classes,
- implemented loading and saving of the models in XML format,
- partially implemented reverse engineering of the database metadata
2. Data Expressions (Andriy):
- defined a concept of building data expressions. Expression operands can
be of any type including query objects or raw SQL statements, thus allowing
nested queries - dream feature missing from WebObjects
- defined participating classes including Expressions, Queries, OrderBy
3. Connection Layer (Andrei):
- defined overall structure of connection layer
- defined participating classes
- implemented creation of connection layer stack based on XML config files
- implemented connection pooling that works with JDBC1 and JDBC2 drivers or
application servers
4. Mapping Tools - both design and implementation are yet to be started.
DO BE DONE:
1. Data Maps:
- subclassing ObjAttribute to allow it to map to derived database columns
(say "count(t0.LAST_NAME)" or "t0.PRICE- t0.SALES_TAX", etc.)
2. Data Expressions
- methods for building data expressions should be able to use strings (or
other objects) for things like attribute names (instead of ObjAttribute
instances), to make them easier to use in application code.
- comparing to NULL should support both "Java syntax" (attr == null) and
"SQL syntax" (attr is null)
- (very important) allow select queries to define result columns different
from the attributes of the root entity, thus bringing it much closer
3. Connection Layer
- SQL translator for data expressions
- Some real logic for query execution at the DataContext level
- Revisit data objects (after implementing features above we actually can
try different caching scenarious, relationship implementations, etc.)
Andrei
This archive was generated by hypermail 2b30 : Sat Aug 04 2001 - 16:21:24 EDT