diff --git a/openjpa-all/pom.xml b/openjpa-all/pom.xml
index 4192de2ea..3237894ca 100644
--- a/openjpa-all/pom.xml
+++ b/openjpa-all/pom.xml
@@ -28,7 +28,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-all
diff --git a/openjpa-examples/image-gallery/pom.xml b/openjpa-examples/image-gallery/pom.xml
index ae54d2257..55cd2a55a 100644
--- a/openjpa-examples/image-gallery/pom.xml
+++ b/openjpa-examples/image-gallery/pom.xml
@@ -27,7 +27,7 @@
org.apache.openjpa
openjpa-examples
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
org.apache.openjpa.openjpa-examples
diff --git a/openjpa-examples/openbooks/pom.xml b/openjpa-examples/openbooks/pom.xml
index 87950916a..359d96bd7 100644
--- a/openjpa-examples/openbooks/pom.xml
+++ b/openjpa-examples/openbooks/pom.xml
@@ -29,7 +29,7 @@
org.apache.openjpa
openjpa-examples
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
org.apache.openjpa.openjpa-examples
diff --git a/openjpa-examples/pom.xml b/openjpa-examples/pom.xml
index 2bf543116..71ed1e502 100644
--- a/openjpa-examples/pom.xml
+++ b/openjpa-examples/pom.xml
@@ -28,7 +28,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-examples
diff --git a/openjpa-examples/simple/pom.xml b/openjpa-examples/simple/pom.xml
index 51247e3bc..045423e5f 100644
--- a/openjpa-examples/simple/pom.xml
+++ b/openjpa-examples/simple/pom.xml
@@ -28,7 +28,7 @@
org.apache.openjpa
openjpa-examples
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
org.apache.openjpa.openjpa-examples
diff --git a/openjpa-features/pom.xml b/openjpa-features/pom.xml
index 4c4e77f1b..2c311c101 100644
--- a/openjpa-features/pom.xml
+++ b/openjpa-features/pom.xml
@@ -18,7 +18,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-features
diff --git a/openjpa-integration/daytrader/pom.xml b/openjpa-integration/daytrader/pom.xml
index cb33e6f4a..746f33942 100644
--- a/openjpa-integration/daytrader/pom.xml
+++ b/openjpa-integration/daytrader/pom.xml
@@ -27,7 +27,7 @@
org.apache.openjpa
openjpa-integration
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-integration-daytrader
diff --git a/openjpa-integration/examples/pom.xml b/openjpa-integration/examples/pom.xml
index f09634e76..d32cb3704 100644
--- a/openjpa-integration/examples/pom.xml
+++ b/openjpa-integration/examples/pom.xml
@@ -37,7 +37,7 @@
org.apache.openjpa
openjpa-integration
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-integration-examples
diff --git a/openjpa-integration/jmx/pom.xml b/openjpa-integration/jmx/pom.xml
index 0f3e379d6..7dc4b1c9f 100644
--- a/openjpa-integration/jmx/pom.xml
+++ b/openjpa-integration/jmx/pom.xml
@@ -28,7 +28,7 @@
org.apache.openjpa
openjpa-integration
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-integration-jmx
diff --git a/openjpa-integration/pom.xml b/openjpa-integration/pom.xml
index 2a80e6ca6..1d553c32a 100644
--- a/openjpa-integration/pom.xml
+++ b/openjpa-integration/pom.xml
@@ -28,7 +28,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-integration
diff --git a/openjpa-integration/slf4j/pom.xml b/openjpa-integration/slf4j/pom.xml
index 8753fa4db..3edcc69c4 100644
--- a/openjpa-integration/slf4j/pom.xml
+++ b/openjpa-integration/slf4j/pom.xml
@@ -27,7 +27,7 @@
org.apache.openjpa
openjpa-integration
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-integration-slf4j
diff --git a/openjpa-integration/tck/pom.xml b/openjpa-integration/tck/pom.xml
index 01615fbe9..1921fac9e 100644
--- a/openjpa-integration/tck/pom.xml
+++ b/openjpa-integration/tck/pom.xml
@@ -78,7 +78,7 @@
org.apache.openjpa
openjpa-integration
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-integration-tck
diff --git a/openjpa-integration/validation/pom.xml b/openjpa-integration/validation/pom.xml
index 6ae1ad5c1..7a57cae94 100644
--- a/openjpa-integration/validation/pom.xml
+++ b/openjpa-integration/validation/pom.xml
@@ -27,7 +27,7 @@
org.apache.openjpa
openjpa-integration
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-integration-validation
diff --git a/openjpa-jdbc/pom.xml b/openjpa-jdbc/pom.xml
index 3ebbfe765..4d15b8ddf 100644
--- a/openjpa-jdbc/pom.xml
+++ b/openjpa-jdbc/pom.xml
@@ -27,7 +27,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-jdbc
diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.java
index ebd107f2d..e032bcbbd 100644
--- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.java
+++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.java
@@ -1048,6 +1048,7 @@ private Object getValue(Object ob, FieldMapping fmd,
case JavaTypes.BIGINTEGER:
case JavaTypes.LOCALE:
case JavaTypes.OBJECT:
+ case JavaTypes.UUID_OBJ:
case JavaTypes.OID:
return sm.fetchObjectField(i);
default:
diff --git a/openjpa-jest/pom.xml b/openjpa-jest/pom.xml
index 9dc147117..a09ed8fc8 100644
--- a/openjpa-jest/pom.xml
+++ b/openjpa-jest/pom.xml
@@ -28,7 +28,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-jest
diff --git a/openjpa-junit5/pom.xml b/openjpa-junit5/pom.xml
index e865ac5ac..4362608a7 100644
--- a/openjpa-junit5/pom.xml
+++ b/openjpa-junit5/pom.xml
@@ -24,7 +24,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-junit5
diff --git a/openjpa-kernel/pom.xml b/openjpa-kernel/pom.xml
index 09ac39dde..31fec2de8 100644
--- a/openjpa-kernel/pom.xml
+++ b/openjpa-kernel/pom.xml
@@ -27,7 +27,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-kernel
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AttachStrategy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AttachStrategy.java
index 6b3e657e7..7a9ee8f30 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AttachStrategy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AttachStrategy.java
@@ -201,6 +201,7 @@ protected boolean attachField(AttachManager manager, Object toAttach,
case JavaTypes.OBJECT:
case JavaTypes.OID:
case JavaTypes.ENUM:
+ case JavaTypes.UUID_OBJ:
val = fetchObjectField(i);
if (val == null && !nullLoaded)
return false;
diff --git a/openjpa-kubernetes/pom.xml b/openjpa-kubernetes/pom.xml
index 746ecc38c..d1e8c8284 100644
--- a/openjpa-kubernetes/pom.xml
+++ b/openjpa-kubernetes/pom.xml
@@ -28,7 +28,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-kubernetes
diff --git a/openjpa-lib/pom.xml b/openjpa-lib/pom.xml
index d6e3c2f62..0f4a934fc 100644
--- a/openjpa-lib/pom.xml
+++ b/openjpa-lib/pom.xml
@@ -27,7 +27,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-lib
diff --git a/openjpa-persistence-jdbc/pom.xml b/openjpa-persistence-jdbc/pom.xml
index 1b03a4ebe..a9461d19c 100644
--- a/openjpa-persistence-jdbc/pom.xml
+++ b/openjpa-persistence-jdbc/pom.xml
@@ -27,7 +27,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-persistence-jdbc
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/generationtype/TestUuidGeneratedEntity.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/generationtype/TestUuidGeneratedEntity.java
index 9796bea0d..be205c17a 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/generationtype/TestUuidGeneratedEntity.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/generationtype/TestUuidGeneratedEntity.java
@@ -74,6 +74,69 @@ public void testDefaultValues() {
closeEM(em);
}
+ public void testMergeBeforePersist() {
+ EntityManager em = emf.createEntityManager();
+
+ UuidGeneratedEntity gv1 = new UuidGeneratedEntity();
+
+ em.getTransaction().begin();
+ gv1 = em.merge(gv1);
+ em.getTransaction().commit();
+
+ em.refresh(gv1);
+
+ assertNotNull(gv1.getId());
+ assertNotNull(gv1.getNativeUuid());
+ closeEM(em);
+ }
+
+ public void testDetachAndMerge() {
+ EntityManager em = emf.createEntityManager();
+ UuidGeneratedEntity gv = new UuidGeneratedEntity();
+ gv.setBasicUuid(UUID.randomUUID());
+
+ em.getTransaction().begin();
+ em.persist(gv);
+ em.getTransaction().commit();
+
+ assertTrue(em.contains(gv));
+ em.detach(gv);
+ em.clear();
+ assertFalse(em.contains(gv));
+
+ Long v = gv.getVersion();
+ gv.setBasicUuid(UUID.randomUUID());
+
+ em.getTransaction().begin();
+ gv = em.merge(gv);
+ em.getTransaction().commit();
+
+ assertTrue((v + 1) == gv.getVersion());
+
+ closeEM(em);
+ }
+
+ public void testGetByReference() {
+ EntityManager em = emf.createEntityManager();
+ UuidGeneratedEntity gv = new UuidGeneratedEntity();
+
+ em.getTransaction().begin();
+ em.persist(gv);
+ em.getTransaction().commit();
+
+ assertTrue(em.contains(gv));
+ em.detach(gv);
+ UUID id = gv.getId();
+ UUID nid = gv.getNativeUuid();
+
+ em.getTransaction().begin();
+ UuidGeneratedEntity rgv = em.getReference(UuidGeneratedEntity.class, id);
+ assertEquals(nid, rgv.getNativeUuid());
+ em.getTransaction().commit();
+
+ closeEM(em);
+ }
+
public void testFindByUUIDProperty() {
EntityManager em = emf.createEntityManager();
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/generationtype/UuidGeneratedEntity.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/generationtype/UuidGeneratedEntity.java
index 6c1909932..b8907bc96 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/generationtype/UuidGeneratedEntity.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/generationtype/UuidGeneratedEntity.java
@@ -27,6 +27,7 @@
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.ManyToOne;
+import jakarta.persistence.Version;
@Entity
public class UuidGeneratedEntity {
@@ -46,6 +47,10 @@ public class UuidGeneratedEntity {
private UUID basicUuid;
+ @Version
+ @Column(name = "version_")
+ private Long version;
+
@ManyToOne
private UuidGeneratedEntity parent;
@@ -93,4 +98,12 @@ public void setParent(UuidGeneratedEntity parent) {
this.parent = parent;
}
+ public Long getVersion() {
+ return version;
+ }
+
+ public void setVersion(Long version) {
+ this.version = version;
+ }
+
}
diff --git a/openjpa-persistence-locking/pom.xml b/openjpa-persistence-locking/pom.xml
index 63891c5fe..dbd4672bd 100644
--- a/openjpa-persistence-locking/pom.xml
+++ b/openjpa-persistence-locking/pom.xml
@@ -27,7 +27,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-persistence-locking
diff --git a/openjpa-persistence/pom.xml b/openjpa-persistence/pom.xml
index 23933454c..148173990 100644
--- a/openjpa-persistence/pom.xml
+++ b/openjpa-persistence/pom.xml
@@ -27,7 +27,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-persistence
diff --git a/openjpa-project/pom.xml b/openjpa-project/pom.xml
index fe3560948..5bee07d4c 100644
--- a/openjpa-project/pom.xml
+++ b/openjpa-project/pom.xml
@@ -39,7 +39,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
apache-openjpa
diff --git a/openjpa-project/src/doc/manual/manual.xml b/openjpa-project/src/doc/manual/manual.xml
index e462634f6..ab17a4c76 100644
--- a/openjpa-project/src/doc/manual/manual.xml
+++ b/openjpa-project/src/doc/manual/manual.xml
@@ -62,9 +62,9 @@
]>
- Apache OpenJPA 3.2 User's Guide
+ Apache OpenJPA 4.1.2-SNAPSHOT User's Guide
- 2006-2021
+ 2006-2025
The Apache Software Foundation
Built from OpenJPA version revision .
diff --git a/openjpa-slice/pom.xml b/openjpa-slice/pom.xml
index b05732d1a..3353132e2 100644
--- a/openjpa-slice/pom.xml
+++ b/openjpa-slice/pom.xml
@@ -27,7 +27,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-slice
diff --git a/openjpa-tools/openjpa-fetch-statistics-was/pom.xml b/openjpa-tools/openjpa-fetch-statistics-was/pom.xml
index 73556dbf8..f5e8e1654 100644
--- a/openjpa-tools/openjpa-fetch-statistics-was/pom.xml
+++ b/openjpa-tools/openjpa-fetch-statistics-was/pom.xml
@@ -17,7 +17,7 @@
org.apache.openjpa
openjpa-tools
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-fetch-statistics-was
diff --git a/openjpa-tools/openjpa-fetch-statistics/pom.xml b/openjpa-tools/openjpa-fetch-statistics/pom.xml
index 31cbf4618..58f0d4d27 100644
--- a/openjpa-tools/openjpa-fetch-statistics/pom.xml
+++ b/openjpa-tools/openjpa-fetch-statistics/pom.xml
@@ -17,7 +17,7 @@
org.apache.openjpa
openjpa-tools
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-fetch-statistics
diff --git a/openjpa-tools/openjpa-maven-plugin/pom.xml b/openjpa-tools/openjpa-maven-plugin/pom.xml
index 52a8e08dd..cf806acf1 100644
--- a/openjpa-tools/openjpa-maven-plugin/pom.xml
+++ b/openjpa-tools/openjpa-maven-plugin/pom.xml
@@ -27,7 +27,7 @@
org.apache.openjpa
openjpa-tools
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
../pom.xml
diff --git a/openjpa-tools/pom.xml b/openjpa-tools/pom.xml
index 7598370a2..744b64fab 100644
--- a/openjpa-tools/pom.xml
+++ b/openjpa-tools/pom.xml
@@ -27,7 +27,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
diff --git a/openjpa-xmlstore/pom.xml b/openjpa-xmlstore/pom.xml
index a4b39a91c..22d956d78 100644
--- a/openjpa-xmlstore/pom.xml
+++ b/openjpa-xmlstore/pom.xml
@@ -27,7 +27,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa-xmlstore
diff --git a/openjpa/pom.xml b/openjpa/pom.xml
index b5aa2b34d..6f836cddc 100644
--- a/openjpa/pom.xml
+++ b/openjpa/pom.xml
@@ -28,7 +28,7 @@
org.apache.openjpa
openjpa-parent
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
openjpa
diff --git a/pom.xml b/pom.xml
index ac5af5327..2652dd416 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,7 +35,7 @@
OpenJPA Parent POM
Apache OpenJPA implementation of Jakarta JPA 3.1
- 4.1.1-SNAPSHOT
+ 4.1.2-SNAPSHOT
11