[
https://issues.apache.org/jira/browse/JDO-403?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12503965
]
Craig Russell commented on JDO-403:
-----------------------------------
The annotations containing boolean element types are problematic due to the
inability of annotations to properly handle the tri-state "true, false,
not-specified". Many of the annotation elements are tri-state, e.g. Field
defaultFetchGroup. This defaults to true for a specific list of field types,
and false for the remaining types. The user can override the default.
With annotations, if you define defaultFetchGroup as a boolean type you must
either require the user to specify a value or define a default. The problem is
that the annotation processor cannot distinguish between the user specifying a
value and the default. So the defaultFetchGroup element is properly defined as
String with a default of "".
The issue comes where some of the elements are defined to be boolean and others
defined to be String. I think it's confusing for users to have to remember
whether they are supposed to type, e.g. @Field(defaultFetchGroup="true") or
@Field(defaultFetchGroup=true).
My preference is to define all of the boolean elements as String. Where the xml
defines the default as IMPLIED, the default value is ""; and where the xml
defines the default as true, the default value is "true". This gives us the
best user experience with the small downside of not having compile-time
checking of true/false and the requirement to enclose boolean values in quotes,
just like xml.
> JDO2 Annotations
> ----------------
>
> Key: JDO-403
> URL: https://issues.apache.org/jira/browse/JDO-403
> Project: JDO
> Issue Type: New Feature
> Components: api2
> Affects Versions: JDO 2 final
> Reporter: Andy Jefferson
> Assignee: Michelle Caisse
> Fix For: JDO 2 maintenance release 1
>
> Attachments: jdo_2_1_annotations.jar
>
>
> It would be desirable for JDO2 to have its own set of annotations. We have
> developed a set within JPOX that would likely serve as a starting point for
> such a set. In my opinion they should be
> 1. Split into javax.jdo.annotations.jdo and javax.jdo.annotations.orm
> 2. Move ORM attributes from some of the JDO annotations and have a ORM
> annotation.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.