Yes, with parentheses everything is working. Thanks.
Tomorrow I will check again.


Miro.

On 12/19/07, Patrick Linskey <[EMAIL PROTECTED]> wrote:
>
> See OPENJPA-470. I'm not sure how to resolve this, short of adding a
> new annotation.
>
> -Patrick
>
> On Dec 19, 2007 7:42 AM, Miroslav Nachev <[EMAIL PROTECTED]> wrote:
> >
> >  Hi,
> >
> >
> >  Additionally, I would expect things to work if you did
> > @GeneratedValue(strategy=GenerationType.SEQUENCE,
> > generator="test.DataObjectsGenerator").
> >
> > Have you tried the latter combination?
> >
> >  Yes, just now I tried. The result is not good:
> >  <openjpa-1.1.0-SNAPSHOT-r420667:603666M fatal store error>
> > org.apache.openjpa.persistence.RollbackException: Could not locate the
> > sequence with name "test.DataObjectsGenerator".  It is possible that the
> > metadata file containing the sequence has not been parsed yet.  Make
> sure to
> > use a persistent class whose metadata is in the same file somewhere in
> your
> > application before requesting the sequence.
> >          at
> > org.apache.openjpa.persistence.EntityManagerImpl.commit(
> EntityManagerImpl.java:490)
> >  ...
> >  Caused by: <openjpa-1.1.0-SNAPSHOT-r420667:603666M fatal user error>
> > org.apache.openjpa.persistence.ArgumentException: Could not locate the
> > sequence with name "test.DataObjectsGenerator".  It is possible that the
> > metadata file containing the sequence has not been parsed yet.  Make
> sure to
> > use a persistent class whose metadata is in the same file somewhere in
> your
> > application before requesting the sequence.
> >          at
> > org.apache.openjpa.meta.MetaDataRepository.getSequenceMetaData(
> MetaDataRepository.java:1726)
> >  ...
> >
> >
> >  Miro.
> >
> >
> >
> >  Patrick Linskey wrote:
> >  Hi,
> >
> > I would roughly expect your example to work as-is, given the code in
> > MetaDataRepository and ClassMetaData.
> >
> > Additionally, I would expect things to work if you did
> > @GeneratedValue(strategy=GenerationType.SEQUENCE,
> > generator="test.DataObjectsGenerator").
> >
> > Have you tried the latter combination?
> >
> > -Patrick
> >
> > On Dec 18, 2007 11:16 AM, Miroslav Nachev <[EMAIL PROTECTED]> wrote:
> >
> >
> >  Hi,
> >
> >  From this mail I understand that the only way in OpenJPA to create
> Custom
> > Identifier is using "Sequence" like that:
> >  @Id
> >  @Column(name = "Data_Object_Id", nullable = false)
> >  @SequenceGenerator(name="DataObjectsSeq",
> > sequenceName="test.DataObjectsGenerator")
> >  @GeneratedValue(strategy=GenerationType.SEQUENCE,
> > generator="DataObjectsSeq")
> >  private BigDecimal dataObjectId;
> >
> >  In my test case I am using MySQL which doesn't support Sequences in
> > principal and maybe this is a problem. It seams that if the database
> doesn't
> > support Sequences it is not possible to create Generic Generated Value.
> But
> > this is not the expected behavior because it is possible to create
> > UUID_STRING and UUID_HEX which are not part of any databases. When I
> look at
> > the code I see the following code in class ImplHelper.java:
> >  private static Object generateValue(StoreContext ctx, ClassMetaData
> > meta, FieldMetaData fmd, int typeCode)\
> >  {
> >  ...
> >  switch (strategy)
> >  {
> >  case ValueStrategies.SEQUENCE:
> >  ...
> >  return JavaTypes.convert(seq.next(ctx, meta), typeCode);
> >  break;
> >  case ValueStrategies.UUID_STRING:
> >  return UUIDGenerator.nextString();
> >  case ValueStrategies.UUID_HEX:
> >  return UUIDGenerator.nextHex();
> >  default:
> >  return null;
> >  }
> >  }
> >
> >  When I try to create Generic Generated Value using Sequence in database
> > which doesn't support Sequences I have exception.
> >  Somebody tell me that I have to use last_insert_id as follow:
> >  dbDict.nextSequenceQuery = "SELECT LAST_INSERT_ID()"
> >  I do that but then nobody invoke my class test.DataObjectsGenerator os
> some
> > of it methods.
> >
> >  From the above code and my tests it seems that theoretically is not
> > possible to have custom (generic) Generated Value using database which
> > doesn't support sequences.
> >  Is that a bug? Do you have any idea how to solve it?
> >
> >  Finally I can replace the database with PostgreSQL but the problem will
> not
> > be solved and will still exists.
> >
> >
> >  Regards,
> >  Miro.
> >
> >
> >
> >  Patrick Linskey wrote:
> >  If you want it to be globally available, you can make it the default
> > implementation for use by @GenerationType.SEQUENCE by specifying it in
> > the openjpa.Sequence property.
> >
> > If you want to use it in just some circumstances, or want to use
> > different configurations / instances for different types, then you can
> > set up named sequences as per the examples in the section I pointed
> > you to earlier, and then list the class name in the value. The example
> > would look like so:
> >
> > @SequenceGenerator(name="MyCustomSeq", sequence="
> fully.qualified.ClassName")
> >
> > Or, if you wanted to set some configuration options on the instance:
> >
> > @SequenceGenerator(name="MyCustomSeq",
> > sequence="fully.qualified.ClassName(InitialValue=5,BitLength=32")
> >
> > This would work provided that your class had methods called
> > setInitialValue() and setBitLength(), or public fields with those
> > names, or implemented the GenericConfigurable interface.
> >
> > Similarly, the syntax for specifying a sequence globally via the
> > openjpa.Sequence setting would look like so:
> >
> > <property name="openjpa.Sequence" value="fully.qualified.ClassName"/>
> >
> > OpenJPA configuration settings that can implement a particular
> > interface use this format plus more-friendly aliases quite frequently.
> >
> > -Patrick
> >
> > On Nov 5, 2007 1:21 PM, Miroslav Nachev <[EMAIL PROTECTED]> wrote:
> >
> >
> >  The implementation of Seq interface is the easiest part of the task. I
> can
> > not see how to configure JPA to use my Seq implementation instead of the
> > standard. Can I do that with annotation or I have to use another tricks?
> >
> >
> > Miro.
> >
> > On 11/5/07, Patrick Linskey <[EMAIL PROTECTED]> wrote:
> >
> >
> >  Gotcha. To do that, you'll need to implement the
> > org.apache.openjpa.kernel.Seq interface. Take a look at the docs [1]
> > for details. That section of the docs also has some examples that
> > should help you use your custom sequence.
> >
> > [1]
> >
> http://openjpa.apache.org/docs/latest/manual/manual.html#ref_guide_sequence
> >
> > -Patrick
> >
> > On Nov 5, 2007 1:01 PM, Miroslav Nachev <[EMAIL PROTECTED]> wrote:
> >
> >
> >  No. I want to have my own class with which to generate the Ids.
> > For example I have binary(32) field which is the Primary Key. I would
> >
> >  like
> >
> >
> >  to generate the values for this PK in my own way.
> >
> >
> > Miro.
> >
> >
> > On 11/5/07, Patrick Linskey <[EMAIL PROTECTED]> wrote:
> >
> >
> >  Hi,
> >
> > Can you describe what you mean by a "generic" GeneratedValue? Do you
> > mean that you'd like to use the @GeneratedValue annotation on
> > non-identity fields? If so, then that is possible in OpenJPA.
> >
> > -Patrick
> >
> > On Nov 5, 2007 12:08 PM, Miroslav Nachev <[EMAIL PROTECTED]> wrote:
> >
> >
> >  Hi,
> >
> > Is there any way to have Generic GeneratedValue in OpenJPA. I know
> >
> >  that
> >
> >
> >
> >  this
> >
> >
> >  is possible in Hibernate JPA but I would like to use OpenJPA if is
> >
> >  possible.
> >
> >
> >  Any suggestions?
> >
> >
> > Regards,
> > Miro.
> >
> >
> >
> > --
> > Patrick Linskey
> > 202 669 5907
> >
> >
> >
> > --
> > Patrick Linskey
> > 202 669 5907
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
>
>
>
> --
> Patrick Linskey
> 202 669 5907
>

Reply via email to