DataSet vs Session

Anthony Berglas <[email protected]>
Newsgroups gmane.comp.java.orm.simpleorm
Message-ID <[email protected]>
Hello Franck,

I have been hacking quite a lot today.  Unifying Session and 
DataSet.  Needs more thought.

Renamed
   1. SDataSet to SDataSetTemp
   2. SSession to SDataSet
Then created SPersisterDatabase that extends SPersister.
Goal to unify SDataSetTemp and SDataSet into the same class, but with 
database things going into SPersisterDatabase.

Clearly we want the .database code in a separate jar from the .record 
SDataSet.
Things like having a default session attached to the thread has 
nothing to do with the database and can go in .record instead of .database.

Unifying means that the user can write things like
   ses.findOrCreate(...)
and ses IS a data set, no delegating all the methods.
That was the motivation.

A database DataSet is then just a DataSet that has a 
SPersisterDatabase SPersister.

But...

The current code creates a new SDataSetTemp every time a transaction 
begin()s.  And the reference is nulled after commit().  This 
obviously cannot happen after unification.  Instead, we would destroy 
the records and cache maps as in 2.*.

After unification, "detaching" a dataset just means changing the 
persister to be the trivial non-database one, and clearing the thread local.

I still think the merge is a good idea, but I will stop short of 
actually doing it.  It would then be quite easy to undo the renames 
if we changed our minds.  We are biting off a lot more than I wanted 
to, but getting these structures right is critical because they are 
difficult to change later.

(In some way we have come around in a big circle.  They were unified 
in 2.*, then we split out DataSet, then we unified them again in a 
different way but with the persister split out.)

(There are, of course, far to many public things at the moment.  Once 
everything is moved need to restrict it all again.)

Anthony



Dr Anthony Berglas, [email protected]       Mobile: +61 4 4838 8874
Just because it is possible to push twigs along the ground with ones nose
does not necessarily mean that is the best way to collect firewood.


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/SimpleORM/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/SimpleORM/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[email protected] 
    mailto:[email protected]

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.