What happens if there isn't a GeneratedValue annotation, but there is one in
orm.xml? In that case shouldn't the generated values take precedence?


On 7/5/07, Kevin Sutter <[EMAIL PROTECTED]> wrote:

Personally, I don't find the current behavior intuitive.  I find it
counter-intuitive.  For this scenario, I have included an annotation that
says to please generate values for my id fields.  But, then I am allowed
to
set values for the keys?  It seems that once we have indicated a desire to
have the fields auto-generated, then that's what should take precedence.

Kevin

On 7/5/07, Patrick Linskey < [EMAIL PROTECTED]> wrote:
>
> > Thoughts?
>
> Spec interpretation aside, I like our current behavior -- it seems
> nice and intuitive.
>
> -Patrick
>
> On 7/5/07, Kevin Sutter < [EMAIL PROTECTED]> wrote:
> > Hi,
> > Looking for some input for OPENJPA-272.
> >
> > Should we allow an application to override the @GeneratedValue
> annotation?
> > For example, consider the following code snippet...
> >
> >     @Id
> >     @GeneratedValue(strategy=GenerationType.AUTO)
> >     private long id;
> >
> > Given this, should an application be allowed to use the setter method
> (call
> > setId(100)) or provide an initial value (private long id = 100;) to
> override
> > the intent of the annotation?  The spec is not 100% clear on
this.  Mike
> > Keith's book has a statement on page 83:
> >
> > "When id generation is enabled, the persistence provider will generate
> an
> > identifier value for every entity instance of that type."
> >
> > If you've been following my OPENJPA-272 JIRA report, I think we have a
> bug
> > in our runtime where we allow this override to happen.  My take is
that
> the
> > annotation is now dictating the values for this field and the
> application
> > should no longer have a say in the values.
> >
> > Of course, when I make this type of change to enforce the
GeneratedValue
> > idea, one of our testcases (TestSharedMappedSuperclassIdValue) has
> relied on
> > this override behaviour and now fails.  Looking at the testcase, I
think
> it
> > wanted to use the same id value, but the "wrong" Entity classes were
> used to
> > test with.  Either this testcase should use alternate Entities without
> the
> > @GeneratedValue annotation, or change the testcase to not care about
the
> id
> > values and let them get generated.
> >
> > Thoughts?
> >
> > Kevin
> >
>
>
> --
> Patrick Linskey
> 202 669 5907
>

Reply via email to