[
https://issues.apache.org/jira/browse/OPENJPA-469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Patrick Linskey resolved OPENJPA-469.
-------------------------------------
Resolution: Duplicate
> Generic (user, custom) GeneratedValue
> -------------------------------------
>
> Key: OPENJPA-469
> URL: https://issues.apache.org/jira/browse/OPENJPA-469
> Project: OpenJPA
> Issue Type: New Feature
> Components: jdbc, kernel
> Affects Versions: 1.1.0
> Environment: The database is MySQL which in principle doesn't support
> sequences. JDK 1.5 is used as and JDK6. For the test case JDK1.5.
> Reporter: Miroslav Nachev
> Priority: Critical
> Fix For: 1.1.0
>
>
> I am trying to create a Custom (generic, user) Sequence Generator following
> the instructions from Patrick Linskey:
> @Id
> @Column(name = "Data_Object_Id", nullable = false)
> @SequenceGenerator(name="DataObjectsSeq",
> sequenceName="test.DataObjectsGenerator")
> @GeneratedValue(strategy=GenerationType.SEQUENCE,
> generator="DataObjectsSeq")
> private BigDecimal dataObjectId;
> Unfortunately this doesn't works in my case maybe because I am using database
> which in principle doesn't support sequences or another reason. I dig up the
> code and see that there is incorrectly logic 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;
> }
> }
> In my opinion the problem is that when I am creating a custom sequence, in
> switch statement this custom sequence is treat as native database sequence.
> This is a general problem. The correct behavior in this sequence to be treat
> as custom sequences as UUID_STRING and UUID_HEX. To be fixed that problem I
> will create a new enumeration which will be named CUSTOM or GENERIC or
> another name. Then I will do the relevant changes in the code. Then in the
> switch statement will be with one more case as follow:
> switch (strategy)
> {
> case ValueStrategies.SEQUENCE:
> ...
> break;
> case ValueStrategies.UUID_STRING:
> ...
> break;
> case ValueStrategies.UUID_HEX:
> ...
> break;
> case ValueStrategies.CUSTOM:
> return JavaTypes.convert(seq.next(ctx, meta), typeCode);
> default:
> ...
> break;
> }
>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.