Hello Robert,

from mobile (sorry for typos ;)


On Wed, Mar 26, 2025, 20:57 Robert <teh...@take3.ro> wrote:

> Hello Maxim,
>
> i have 2 problems to use JPA31 with OpenJPA 4.1.0.
>
> 1) persistence.xml
>
> Because there doesn't exist a persistence_3_1.xsd (even on jakarta.ee) i
> use persistence_3_0.xsd (as i read it is compatible), but the following
> snippet doesn't work:
>
> <persistence version="3.1" xmlns="https://jakarta.ee/xml/ns/persistence";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="
> https://jakarta.ee/xml/ns/persistence
> https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd";>
> ...
> </persistence>
>

I believe the version attribute should be "3.0" here (the same as in xsd
file name)

Version 3.1 can be handled
I just didn't thought it should be done :)
My rationale was: XSD version wasn't changed so attribute should stay ad
3.0


> The schema verifier doesn't like this, with eclipselink 4.0.5 the snippet
> is working.
>
> I solved this with this small patch (simply deleting the fixed="3.0"):
>
> ---
> a/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/persistence_3_0.xsd.rsrc
> +++
> b/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/persistence_3_0.xsd.rsrc
> @@ -283,7 +283,7 @@
> </xsd:element>
> </xsd:sequence>
> <xsd:attribute name="version" type="persistence:versionType"
> - fixed="3.0" use="required"/>
> + use="required"/>
> </xsd:complexType>
> </xsd:element>---
> a/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/persistence_3_0.xsd.rsrc
> +++
> b/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/persistence_3_0.xsd.rsrc
> @@ -283,7 +283,7 @@
>          </xsd:element>
>        </xsd:sequence>
>        <xsd:attribute name="version" type="persistence:versionType"
> -                     fixed="3.0" use="required"/>
> +                     use="required"/>
>      </xsd:complexType>
>    </xsd:element>
>
> 2) @GeneratedValue (AUTO and UUID)
>
> An entity with:
>
> ...
> @Id
> @GeneratedValue(strategy = GenerationType.UUID)
> private UUID id;
> ...
>
> is not working - throwing an exception:
> org.apache.openjpa.persistence.PersistenceException: Cannot invoke
> "Object.getClass()" because "val" is null
> at ro.take3.jpatest.Test01EntityTest.testPersist(Test01EntityTest.java:60)
>
> ...
> @Id
> // @GeneratedValue(strategy = GenerationType.UUID)
> private UUID id = UUID.randomUUID();
> ...
>
> seems to work.
>
> Is this an OpenJPA issue or am i doing something wrong?
>

There are working tests, I can check a bit later


> Best regards, Robert
>
> --
>
> Robert <teh...@take3.ro>
>
>

Reply via email to