Re: Maps
Armin Waibel <[email protected]> Mon, 08 Oct 2007 16:02:02 +0200
| Newsgroups | gmane.comp.jakarta.ojb.user |
|---|---|
| Message-ID | <[email protected]> |
Hi Robert,
Robert Giddings wrote:
> Hi Armin,
>
> UserType is a complex object that is used as a property in other
> objects. AccessRight is an enum.
>
> The XDoclet I currently have is:
>
> /**
> * @ojb.field jdbc-type="LONGVARCHAR"
> conversion="org.apache.ojb.broker.accesslayer.conversions.Object2Base64S
> tringFieldConversion"
> */
> private EnumMap<AccessRight, Boolean> accessRights =
> new EnumMap<AccessRight, Boolean>(AccessRight.class);
>
> I was just wondering if there is a better way of converting this
> property?
hmm, you can write your own FieldConversion to optimize conversion
performance (java --> sql and vice versa).
E.g. persist key-value string ("read=true,write=true,delete=false") or
only the values ("110") instead of the whole object.
An alternative would be a nested object
http://db.apache.org/ojb/docu/guides/advanced-technique.html#Nested+Objects
with a Boolean field for each AccessRight. But a 'nested object' need a
default constructor and it will be tricky to realize it with
EnumMap<AccessRight, Boolean>. The advantage of a nested object is that
you can search for each field (of a nested object) in queries.
regards,
Armin
>
> Thanks,
>
> Robert Giddings
>
> -----Original Message-----
> From: Armin Waibel [mailto:[email protected]]
> Sent: 28 September 2007 16:40
> To: OJB Users List
> Subject: Re: Maps
>
> Robert Giddings wrote:
>> Also forgot to mention, what I really want is the XDoclet code that
> can
>> be used with Maps.
>>
>
> Sorry, I don't get it. How are UserType and AccessRight associated
> (1:n?)?
>
> Armin
>
>
>> Robert
>>
>> -----Original Message-----
>> From: Robert Giddings [mailto:[email protected]]
>> Sent: 28 September 2007 14:28
>> To: 'OJB Users List'
>> Subject: RE: Maps
>>
>> Hi Armin,
>>
>> This is the Map in question:
>>
>> private EnumMap<AccessRight, Boolean> accessRights =
>> new EnumMap<AccessRight, Boolean>(AccessRight.class);
>>
>> It is just a data member field in an object called UserType.
>>
>> Thanks,
>>
>> Robert
>>
>> -----Original Message-----
>> From: Armin Waibel [mailto:[email protected]]
>> Sent: 28 September 2007 14:00
>> To: OJB Users List
>> Subject: Re: Maps
>>
>> Hi Robert,
>>
>> Robert Giddings wrote:
>>> Hi,
>>>
>>> Does anyone know if and how OJB can handle Maps?
>>>
>> can you describe more detailed what you want to do - using maps in 1:n
>
>> or m:n references, direct persist maps, ...
>>
>> regards,
>> Armin
>>
>>> Thanks,
>>>
>>> Rob
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
>
>