db-ojb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Taal (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OJB-24) Feature Request: enumerates and field conversions
Date Mon, 18 Apr 2005 20:02:50 GMT
     [ 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
> 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
> gr. Martin Taal

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org

View raw message