Skip to content

Commit

Permalink
JPA UUID Test.
Browse files Browse the repository at this point in the history
Signed-off-by: Tomas Kraus <tomas.kraus@oracle.com>
  • Loading branch information
Tomas-Kraus committed Jan 3, 2022
1 parent f11c8d8 commit 9affc95
Show file tree
Hide file tree
Showing 11 changed files with 129 additions and 5 deletions.
5 changes: 4 additions & 1 deletion sql/db2/db2.ddl.persistence.sql
Original file line number Diff line number Diff line change
Expand Up @@ -904,4 +904,7 @@ CREATE TABLE COLTAB_EMP_EMBEDED_ADDRESS (ADDRESS_LOCATION VARCHAR(255), STREET V
ALTER TABLE COLTAB_EMP_EMBEDED_ADDRESS ADD CONSTRAINT FK_EMPEMBADDRID FOREIGN KEY (EMPEMBADDRID) REFERENCES EMPLOYEE_EMBEDED_ADDRESS (ID) !

DROP SEQUENCE SEQGENERATOR !
CREATE SEQUENCE SEQGENERATOR AS INT START WITH 10 !
CREATE SEQUENCE SEQGENERATOR AS INT START WITH 10 !

DROP TABLE UUIDTYPE !
CREATE TABLE UUIDTYPE (ID VARCHAR(96) NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID)) !
5 changes: 4 additions & 1 deletion sql/derby/derby.ddl.persistence.sql
Original file line number Diff line number Diff line change
Expand Up @@ -924,4 +924,7 @@ ALTER TABLE COLTAB_EMP_EMBEDED_ADDRESS ADD CONSTRAINT FK_EMPEMBADDRID FOREIGN KE


DROP SEQUENCE SEQGENERATOR RESTRICT;
CREATE SEQUENCE SEQGENERATOR AS INT START WITH 10;
CREATE SEQUENCE SEQGENERATOR AS INT START WITH 10;

DROP TABLE UUIDTYPE;
CREATE TABLE UUIDTYPE (ID VARCHAR(96) NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID));
5 changes: 4 additions & 1 deletion sql/mssqlserver/mssqlserver.ddl.persistence.sql
Original file line number Diff line number Diff line change
Expand Up @@ -960,4 +960,7 @@ DROP TABLE EMPLOYEE_EMBEDED_ADDRESS !
CREATE TABLE EMPLOYEE_EMBEDED_ADDRESS (ID INTEGER NOT NULL, FIRSTNAME VARCHAR(255), LASTNAME VARCHAR(255), PRIMARY KEY (ID)) !

CREATE TABLE COLTAB_EMP_EMBEDED_ADDRESS (ADDRESS_LOCATION VARCHAR(255), STREET VARCHAR(255), STATE VARCHAR(255), ZIP VARCHAR(255), CITY VARCHAR(255), ID VARCHAR(255), EMPEMBADDRID INTEGER) !
ALTER TABLE COLTAB_EMP_EMBEDED_ADDRESS ADD CONSTRAINT FK_EMPEMBADDRID FOREIGN KEY (EMPEMBADDRID) REFERENCES EMPLOYEE_EMBEDED_ADDRESS (ID) !
ALTER TABLE COLTAB_EMP_EMBEDED_ADDRESS ADD CONSTRAINT FK_EMPEMBADDRID FOREIGN KEY (EMPEMBADDRID) REFERENCES EMPLOYEE_EMBEDED_ADDRESS (ID) !

DROP TABLE UUIDTYPE !
CREATE TABLE UUIDTYPE (ID VARCHAR(96) NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID)) !
3 changes: 3 additions & 0 deletions sql/mysql/mysql.ddl.persistence.sql
Original file line number Diff line number Diff line change
Expand Up @@ -1145,3 +1145,6 @@ DROP TABLE EMPLOYEE_EMBEDED_ADDRESS !
CREATE TABLE EMPLOYEE_EMBEDED_ADDRESS (ID INTEGER NOT NULL, FIRSTNAME VARCHAR(255), LASTNAME VARCHAR(255), PRIMARY KEY (ID)) !
CREATE TABLE COLTAB_EMP_EMBEDED_ADDRESS (ADDRESS_LOCATION VARCHAR(255), STREET VARCHAR(255), STATE VARCHAR(255), ZIP VARCHAR(255), CITY VARCHAR(255), ID VARCHAR(255), EMPEMBADDRID INTEGER) !
ALTER TABLE COLTAB_EMP_EMBEDED_ADDRESS ADD ( CONSTRAINT FK_EMPEMBADDRID FOREIGN KEY (EMPEMBADDRID) REFERENCES EMPLOYEE_EMBEDED_ADDRESS (ID) ) !

DROP TABLE IF EXISTS UUIDTYPE !
CREATE TABLE UUIDTYPE (ID VARCHAR(96) NOT NULL PRIMARY KEY, NAME VARCHAR(255)) !
3 changes: 3 additions & 0 deletions sql/oracle/oracle.ddl.persistence.sql
Original file line number Diff line number Diff line change
Expand Up @@ -902,3 +902,6 @@ ALTER TABLE COLTAB_EMP_EMBEDED_ADDRESS ADD ( CONSTRAINT FK_EMPEMBADDRID FOREIGN

DROP SEQUENCE SEQGENERATOR !
CREATE SEQUENCE SEQGENERATOR START WITH 10 !

DROP TABLE UUIDTYPE !
CREATE TABLE UUIDTYPE (ID VARCHAR(96) NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID)) !
3 changes: 3 additions & 0 deletions sql/pointbase/pointbase.ddl.persistence.sql
Original file line number Diff line number Diff line change
Expand Up @@ -833,3 +833,6 @@ ALTER TABLE COLTAB_EMP_EMBEDED_ADDRESS ADD CONSTRAINT FK_EMPEMBADDRID FOREIGN KE
DROP TABLE EMP_MAPKEYCOL cascade;
CREATE TABLE EMP_MAPKEYCOL (ID INTEGER PRIMARY KEY NOT NULL, FIRSTNAME VARCHAR(255) , LASTNAME VARCHAR(255), HIREDATE DATE, SALARY REAL NOT NULL, STATUS VARCHAR(255) , FK_MGR INTEGER, FK_DEPT INTEGER, FK_PROJECT INTEGER , FK_INS INTEGER, OFFICE_ID VARCHAR(255)) ;
ALTER TABLE EMP_MAPKEYCOL ADD CONSTRAINT FK_DEPT1 FOREIGN KEY (FK_DEPT) REFERENCES DEPARTMENT(ID) ON DELETE CASCADE;

DROP TABLE UUIDTYPE;
CREATE TABLE UUIDTYPE (ID VARCHAR(96) NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID));
3 changes: 3 additions & 0 deletions sql/postgresql/postgresql.ddl.persistence.sql
Original file line number Diff line number Diff line change
Expand Up @@ -739,3 +739,6 @@ ALTER TABLE COLTAB_EMP_EMBEDED_ADDRESS ADD CONSTRAINT FK_EMPEMBADDRID FOREIGN KE

DROP SEQUENCE SEQGENERATOR;
CREATE SEQUENCE SEQGENERATOR START WITH 10;

DROP TABLE UUIDTYPE;
CREATE TABLE UUIDTYPE (ID VARCHAR(96) NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID));
3 changes: 3 additions & 0 deletions sql/sybase/sybase.ddl.persistence.sql
Original file line number Diff line number Diff line change
Expand Up @@ -1126,3 +1126,6 @@ DROP TABLE EMPLOYEE_EMBEDED_ADDRESS !
CREATE TABLE EMPLOYEE_EMBEDED_ADDRESS (ID INTEGER NOT NULL, FIRSTNAME VARCHAR(255), LASTNAME VARCHAR(255), PRIMARY KEY (ID)) !
CREATE TABLE COLTAB_EMP_EMBEDED_ADDRESS (ADDRESS_LOCATION VARCHAR(255), STREET VARCHAR(255), STATE VARCHAR(255), ZIP VARCHAR(255), CITY VARCHAR(255), ID VARCHAR(255), EMPEMBADDRID INTEGER) !
ALTER TABLE COLTAB_EMP_EMBEDED_ADDRESS ADD CONSTRAINT FK_EMPEMBADDRID FOREIGN KEY (EMPEMBADDRID) REFERENCES EMPLOYEE_EMBEDED_ADDRESS (ID) !

DROP TABLE UUIDTYPE !
CREATE TABLE UUIDTYPE (ID VARCHAR(96) NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID)) !
37 changes: 37 additions & 0 deletions src/com/sun/ts/tests/jpa/core/types/field/Client.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import java.util.UUID;

import com.sun.javatest.Status;
import com.sun.ts.lib.util.TestUtil;
Expand Down Expand Up @@ -1018,6 +1019,40 @@ public void fieldTypeTest17() throws Fault {
throw new Fault("fieldTypeTest17 failed");
}

/*
* @testName: testCreateUUIDType
*
* @assertion_ids: PERSISTENCE:SPEC:2512; PERSISTENCE:SPEC:1643;
*
* @test_Strategy: Test EM create on entity class with UUID.
*/
public void testCreateUUIDType() throws Fault {
UUID id = UUID.randomUUID();
UUIDType uuidType = new UUIDType(id, "Create UUID Type");
try {
getEntityTransaction().begin();
getEntityManager().persist(uuidType);
getEntityManager().flush();
UUIDType fromDb = getEntityManager().find(UUIDType.class, id);
System.out.println("UUID: " + fromDb.getId().toString());
if (fromDb == null) {
throw new Fault("testCreateUUIDType: no UUID was found in database");
}
if (!id.equals(fromDb.getId())) {
throw new Fault("testCreateUUIDType: UUID returned from database " + fromDb.getId()
+ " does not match expected value " + id);
}
getEntityTransaction().commit();
} catch (Exception ex) {
TestUtil.logErr("Caught exception: ", ex);
throw new Fault("Caught exception: ", ex);
} finally {
if (getEntityTransaction().isActive()) {
getEntityTransaction().rollback();
}
}
}

/*
* @testName: scalarExpressionsTest
*
Expand Down Expand Up @@ -1231,6 +1266,8 @@ private void removeTestData() {
.executeUpdate();
getEntityManager().createNativeQuery("DELETE FROM DATATYPES2")
.executeUpdate();
getEntityManager().createNativeQuery("DELETE FROM UUIDTYPE")
.executeUpdate();
getEntityTransaction().commit();
} catch (Exception e) {
TestUtil.logErr("Exception encountered while removing entities:", e);
Expand Down
64 changes: 64 additions & 0 deletions src/com/sun/ts/tests/jpa/core/types/field/UUIDType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/*
* Copyright (c) 2007, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/

/*
* $Id$
*/

package com.sun.ts.tests.jpa.core.types.field;

import java.util.UUID;

import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;

@Entity
@Table(name = "UUIDTYPE")
public class UUIDType implements java.io.Serializable {

@Id
//@GeneratedValue(strategy=GenerationType.UUID)
private UUID id;
private String name;

public UUIDType() {
this.id = null;
this.name = null;
}

public UUIDType(UUID id, String name) {
this.id = id;
this.name = name;
}

public UUID getId() {
return id;
}

public void setId(UUID id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}
3 changes: 1 addition & 2 deletions src/com/sun/ts/tests/jpa/core/types/field/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@
<property name="app.name" value="jpa_core_types_field"/>
<property name="jpa_core_types_common_dir" value="com/sun/ts/tests/jpa/core/types/common"/>
<property name="par.classes"
value="${pkg.dir}/DataTypes.class,
${pkg.dir}/DataTypes2.class"/>
value="${pkg.dir}/DataTypes.class, ${pkg.dir}/DataTypes2.class, ${pkg.dir}/UUIDType.class"/>

<target name="package">

Expand Down

0 comments on commit 9affc95

Please sign in to comment.