[ http://issues.apache.org/jira/browse/OJB-24?page=comments#action_63080 ]
     
Martin Taal commented on OJB-24:
--------------------------------

Actually I am looking at an emf enumerator 
(org.eclipse.emf.common.util.AbstractEnumerator) but the approach is very 
similar to commons-enum (never worked with that one though).
You are right that having a specific converter for each enum-subtype solves 
this issue (at least I think that is what you mean). 
However, what I think of is a generic field converter which detects what the 
required enum-type of the field is and then automatically converts the value 
from the db (and back). In this way I do not need a converter for each 
enum-subtype but can work with one generic converter (which I automatically add 
in the field-descriptor when I generate the repository.xml). However for this 
generic converter it has to know runtime what the fielddescriptor is.

Regarding code, what I currently do is to store the class name of the enum-type 
in the same db-field as the enum value (making the varchar a bit longer). In 
this way my generic converter reads the contents of the field, gets the class 
name from it and gets the enum object from the enum-class.


> Feature Request: enumerates and field conversions
> -------------------------------------------------
>
>          Key: OJB-24
>          URL: http://issues.apache.org/jira/browse/OJB-24
>      Project: OJB
>         Type: New Feature
>   Components: PB-API
>     Versions: 1.1 CVS
>     Reporter: Martin Taal
>     Priority: Minor

>
> Hi,
> In my model I have enumerates which are represented as a java object in 
> memory. An enumerate java object has an int and a String value. When the 
> owner object is persisted I want to convert the enumerate object to either 
> the int or the string and store it in a field. When the owner object is 
> retrieved then the primitive type database field should be translated into 
> the enumerate object.
> It seems logical to use fieldconversions to achieve this, however the field 
> conversion interface only passes the value from the database and from this 
> database value it can not be determined which Enumerate object should be 
> created. This is so because different enumeratetypes can have the same value 
> (with a different meaning). To identify which enumerate object should be 
> created the fieldconversion interface could be extended so that also the 
> field descriptor is passed.
> This is really just a very-low-priority-nice-to-have because there are many 
> workarounds, e.g. store the enumerate class in the field also (etc.). But 
> maybe somebody else also requires it or this has come-up earlier or maybe 
> field conversions are looked at anyhow for a new larger release.
> gr. Martin Taal

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to