[ZODB-Dev] Adopting ZODB
Christian Theune
ct at gocept.com
Thu Jul 13 12:57:40 EDT 2006
Chris S wrote:
> On 7/13/06, Christian Theune <ct at gocept.com> wrote:
>> Chris S wrote:
>> > I'm trying to adopt some code to use ZODB as its persistence level.
>> > I've read the "Writing a Persistent Class" article
>> >
>> (http://www.zope.org/Wikis/ZODB/FrontPage/guide/node3.html#SECTION000350000000000000000)
>>
>> >
>> > but how do you persist a class that already inherits another class?
>> > Does ZODB work with multiple inheritence?
>>
>> Yes.
>>
>> > Also, how should I persist
>> > objects in libraries beyond my control? For example, I'd like to
>> > persist instances of pyrobot.brain.conx.Network
>> >
>> (http://pyrorobotics.org/?page=Building_20Neural_20Networks_20using_20Conx).
>>
>> >
>> > Is there any ability in ZODB to retroactively wrap objects in a
>> > persistence mechanism instead of having to rewrite an entire library
>> > to use the Persistent class?
>>
>> You can always persist (almost) any object, even if it does not subclass
>> from Persistent. However, any changes to the object will not be detected
>> automatically and you would have to either a) reassign the object to the
>> ZODB or b) mark it as changed using _p_changed()
>>
>> Christian
>
> I don't think this is the case. Consider my simple example below. None
> of my classes inherit Persistent, and even though I set _p_changed =
> 1, nothing's persisted.
You're right. You have to re-assign the object to the ZODB. My fault.
Consider the other option and create a wrapper class.
Christian
--
gocept gmbh & co. kg - forsterstraße 29 - 06112 halle/saale - germany
www.gocept.com - ct at gocept.com - phone +49 345 122 9889 7 -
fax +49 345 122 9889 1 - zope and plone consulting and development
More information about the ZODB-Dev
mailing list