Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JDO-844: Add SampleReadQuery test methods with variables of type String #97

Merged
merged 2 commits into from
Nov 12, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -93,7 +93,8 @@ public class FetchGroupTest extends JDO_Test {
"middlename",
"birthdate",
"address",
"phoneNumbers"
"phoneNumbers",
"languages"
};
/** Address address is of type Address and is a relationship */
protected final String[] relationshipMembers =
@@ -112,9 +113,11 @@ public class FetchGroupTest extends JDO_Test {
"hradvisees",
"address"
};
/** Map phoneNumbers is not a relationship but is multivalued */
/** Map phoneNumbers and set languages are not relationships but are multivalued */
protected final String[] multivaluedMembers =
new String[] {"reviewedProjects", "projects", "team", "hradvisees", "phoneNumbers"};
new String[] {
"reviewedProjects", "projects", "team", "hradvisees", "phoneNumbers", "languages"
};

protected final String[] allButMultivaluedMembers =
new String[] {
@@ -336,16 +339,21 @@ public void testRemoveMembers() {
Set<String> expectedSet = new HashSet<>();
expectedSet.addAll(Arrays.asList(basicMembers));
expectedSet.add("phoneNumbers");
expectedSet.add("languages");
Assertions.assertEquals(
expectedSet,
members,
"FetchGroup should contain basic members " + "plus address plus phoneNumbers.\n");
"FetchGroup should contain basic members "
+ "plus address plus phoneNumbers and languages.\n");
fg.removeMembers(basicMembers);
members = fg.getMembers();
expectedSet = new HashSet<>();
expectedSet.add("phoneNumbers");
expectedSet.add("languages");
Assertions.assertEquals(
expectedSet, members, "FetchGroup should contain address plus phoneNumbers.\n");
expectedSet,
members,
"FetchGroup should contain address plus phoneNumbers and languages.\n");
}

@SuppressWarnings("unchecked")
Original file line number Diff line number Diff line change
@@ -110,7 +110,7 @@ protected void insertObjects(boolean sharedPC) {

while (!attemptsComplete()) {
try {
Thread.sleep(100);
Thread.sleep(200);
} catch (InterruptedException ex) {
logger.debug("interrupted while waiting for threads to insert");
}
5 changes: 5 additions & 0 deletions tck/src/main/java/org/apache/jdo/tck/pc/company/IPerson.java
Original file line number Diff line number Diff line change
@@ -19,6 +19,7 @@

import java.util.Date;
import java.util.Map;
import java.util.Set;

/**
* This interface represents the persistent state of Person. Javadoc was deliberately omitted
@@ -40,6 +41,8 @@ public interface IPerson {

Map<String, String> getPhoneNumbers();

Set<String> getLanguages();

void setPersonid(long personid);

void setLastname(String lastname);
@@ -53,4 +56,6 @@ public interface IPerson {
void setBirthdate(Date birthdate);

void setPhoneNumbers(Map<String, String> phoneNumbers);

void setLanguages(Set<String> languages);
}
5 changes: 5 additions & 0 deletions tck/src/main/java/org/apache/jdo/tck/pc/company/PIPerson.java
Original file line number Diff line number Diff line change
@@ -19,6 +19,7 @@

import java.util.Date;
import java.util.Map;
import java.util.Set;

/**
* This interface represents the persistent state of Person. Javadoc was deliberately omitted
@@ -40,6 +41,8 @@ public interface PIPerson extends IPerson {

Map<String, String> getPhoneNumbers();

Set<String> getLanguages();

void setPersonid(long personid);

void setLastname(String lastname);
@@ -53,4 +56,6 @@ public interface PIPerson extends IPerson {
void setBirthdate(Date birthdate);

void setPhoneNumbers(Map<String, String> phoneNumbers);

void setLanguages(Set<String> languages);
}
26 changes: 25 additions & 1 deletion tck/src/main/java/org/apache/jdo/tck/pc/company/Person.java
Original file line number Diff line number Diff line change
@@ -22,7 +22,9 @@
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.jdo.annotations.PersistenceCapable;
import org.apache.jdo.tck.util.DeepEquality;
import org.apache.jdo.tck.util.EqualityHelper;
@@ -46,6 +48,8 @@ public class Person
// to phone numbers specified as String
private Map<String, String> phoneNumbers = new HashMap<>();

private Set<String> languages = new HashSet<>();

/** This is the JDO-required no-args constructor. */
protected Person() {}

@@ -261,6 +265,24 @@ public void setPhoneNumbers(Map<String, String> phoneNumbers) {
this.phoneNumbers = (phoneNumbers != null) ? new HashMap<>(phoneNumbers) : null;
}

/**
* Get the set of languages as an unmodifiable set.
*
* @return The set of languages, as an unmodifiable set.
*/
public Set<String> getLanguages() {
return Collections.unmodifiableSet(languages);
}

/**
* Set the languages set to be in this person.
*
* @param languages The set of languages for this person.
*/
public void setLanguages(Set<String> languages) {
this.languages = new HashSet(languages);
}

/**
* Returns a String representation of a <code>Person</code> object.
*
@@ -282,6 +304,7 @@ protected String getFieldRepr() {
rc.append(", ").append(firstname);
rc.append(", born ").append(JDOCustomDateEditor.getDateRepr(birthdate));
rc.append(", phone ").append(phoneNumbers);
rc.append(", languages ").append(languages);
return rc.toString();
}

@@ -304,7 +327,8 @@ public boolean deepCompareFields(Object other, EqualityHelper helper) {
& helper.equals(middlename, otherPerson.getMiddlename(), where + ".middlename")
& helper.equals(birthdate, otherPerson.getBirthdate(), where + ".birthdate")
& helper.deepEquals(address, otherPerson.getAddress(), where + ".address")
& helper.deepEquals(phoneNumbers, otherPerson.getPhoneNumbers(), where + ".phoneNumbers");
& helper.deepEquals(phoneNumbers, otherPerson.getPhoneNumbers(), where + ".phoneNumbers")
& helper.deepEquals(languages, otherPerson.getLanguages(), where + ".languages");
}

/**
Original file line number Diff line number Diff line change
@@ -22,8 +22,11 @@
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.jdo.annotations.Column;
import javax.jdo.annotations.Element;
import javax.jdo.annotations.Embedded;
import javax.jdo.annotations.Inheritance;
import javax.jdo.annotations.InheritanceStrategy;
@@ -86,6 +89,11 @@ public class FCAppPerson
@Value(types = java.lang.String.class, column = "PHONENO")
private Map<String, String> phoneNumbers = new HashMap<>();

@Persistent(table = "employee_languages")
@Join(column = "EMPID")
@Element(types = java.lang.String.class, column = "LANGUAGE")
private Set<String> languages = new HashSet<>();

/** This is the JDO-required no-args constructor. */
protected FCAppPerson() {}

@@ -301,6 +309,24 @@ public void setPhoneNumbers(Map<String, String> phoneNumbers) {
this.phoneNumbers = (phoneNumbers != null) ? new HashMap<>(phoneNumbers) : null;
}

/**
* Get the map of languages as an unmodifiable Set.
*
* @return The set of languages, as an unmodifiable set.
*/
public Set<String> getLanguages() {
return Collections.unmodifiableSet(languages);
}

/**
* Set the languages set to be in this person.
*
* @param languages The map of phoneNumbers for this person.
*/
public void setLanguages(Set<String> languages) {
this.languages = new HashSet(languages);
}

/**
* Returns a String representation of a <code>FCAppPerson</code> object.
*
Original file line number Diff line number Diff line change
@@ -22,8 +22,11 @@
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.jdo.annotations.Column;
import javax.jdo.annotations.Element;
import javax.jdo.annotations.Embedded;
import javax.jdo.annotations.Join;
import javax.jdo.annotations.Key;
@@ -82,6 +85,11 @@ public class FCDSPerson
@Value(types = java.lang.String.class, column = "PHONENO")
private Map<String, String> phoneNumbers = new HashMap<>();

@Persistent(table = "employee_languages")
@Join(column = "EMPID")
@Element(types = java.lang.String.class, column = "LANGUAGE")
private Set<String> languages = new HashSet<>();

/** This is the JDO-required no-args constructor. */
protected FCDSPerson() {}

@@ -297,6 +305,24 @@ public void setPhoneNumbers(Map<String, String> phoneNumbers) {
this.phoneNumbers = (phoneNumbers != null) ? new HashMap<>(phoneNumbers) : null;
}

/**
* Get the map of languages as an unmodifiable Set.
*
* @return The set of languages, as an unmodifiable set.
*/
public Set<String> getLanguages() {
return Collections.unmodifiableSet(languages);
}

/**
* Set the languages set to be in this person.
*
* @param languages The map of phoneNumbers for this person.
*/
public void setLanguages(Set<String> languages) {
this.languages = new HashSet(languages);
}

/**
* Returns a String representation of a <code>FCDSPerson</code> object.
*
@@ -318,6 +344,7 @@ protected String getFieldRepr() {
rc.append(", ").append(firstname);
rc.append(", born ").append(JDOCustomDateEditor.getDateRepr(birthdate));
rc.append(", phone ").append(phoneNumbers);
rc.append(", languages ").append(languages);
return rc.toString();
}

@@ -340,7 +367,8 @@ public boolean deepCompareFields(Object other, EqualityHelper helper) {
& helper.equals(middlename, otherPerson.getMiddlename(), where + ".middlename")
& helper.equals(birthdate, otherPerson.getBirthdate(), where + ".birthdate")
& helper.deepEquals(address, otherPerson.getAddress(), where + ".address")
& helper.deepEquals(phoneNumbers, otherPerson.getPhoneNumbers(), where + ".phoneNumbers");
& helper.deepEquals(phoneNumbers, otherPerson.getPhoneNumbers(), where + ".phoneNumbers")
& helper.deepEquals(languages, otherPerson.getLanguages(), where + ".languages");
}

/**
Original file line number Diff line number Diff line change
@@ -18,24 +18,30 @@
package org.apache.jdo.tck.pc.companyAnnotatedJPA;

import java.io.Serializable;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.CollectionTable;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.ElementCollection;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.MapKey;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@@ -90,6 +96,10 @@ public class JPAAppPerson
@MapKey(name = "type")
private Map<String, JPAAppPhoneNumber> phoneNumbers = new HashMap<>();

@ElementCollection
@CollectionTable(name = "employee_languages", joinColumns = @JoinColumn(name = "EMPID"))
private Set<String> languages = new HashSet<>();

/** This is the JDO-required no-args constructor. */
protected JPAAppPerson() {}

@@ -305,6 +315,24 @@ public void setPhoneNumbers(Map<String, String> phoneNumbers) {
this.phoneNumbers = (phoneNumbers != null) ? convertString2Phone(phoneNumbers) : null;
}

/**
* Get the map of languages as an unmodifiable Set.
*
* @return The set of languages, as an unmodifiable set.
*/
public Set<String> getLanguages() {
return Collections.unmodifiableSet(languages);
}

/**
* Set the languages set to be in this person.
*
* @param languages The map of phoneNumbers for this person.
*/
public void setLanguages(Set<String> languages) {
this.languages = new HashSet(languages);
}

/**
* Converts HashMap of String, String to HashMap of String, JPAAppPhoneNmber
*
@@ -360,6 +388,7 @@ protected String getFieldRepr() {
rc.append(", ").append(firstname);
rc.append(", born ").append(JDOCustomDateEditor.getDateRepr(birthdate));
rc.append(", phone ").append(convertPhone2String(phoneNumbers));
rc.append(", languages ").append(languages);
return rc.toString();
}

@@ -385,7 +414,8 @@ public boolean deepCompareFields(Object other, EqualityHelper helper) {
& helper.deepEquals(
convertPhone2String(phoneNumbers),
otherPerson.getPhoneNumbers(),
where + ".phoneNumbers");
where + ".phoneNumbers")
& helper.deepEquals(languages, otherPerson.getLanguages(), where + ".languages");
}

/**
Original file line number Diff line number Diff line change
@@ -18,10 +18,13 @@
package org.apache.jdo.tck.pc.companyAnnotatedPC;

import java.io.Serializable;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.jdo.annotations.Column;
import javax.jdo.annotations.Discriminator;
import javax.jdo.annotations.DiscriminatorStrategy;
@@ -62,6 +65,7 @@ public class PCAppPerson
@NotPersistent() private Date _birthdate;
@NotPersistent() private PCAppAddress _address;
@NotPersistent() private Map<String, String> _phoneNumbers = new HashMap<>();
@NotPersistent() private Set<String> _languages = new HashSet<>();

/** This is the JDO-required no-args constructor. */
protected PCAppPerson() {}
@@ -294,6 +298,24 @@ public void setPhoneNumbers(Map<String, String> phoneNumbers) {
this._phoneNumbers = (phoneNumbers != null) ? new HashMap<>(phoneNumbers) : null;
}

/**
* Get the map of languages as an unmodifiable Set.
*
* @return The set of languages, as an unmodifiable set.
*/
public Set<String> getLanguages() {
return Collections.unmodifiableSet(_languages);
}

/**
* Set the languages set to be in this person.
*
* @param languages The set of languages for this person.
*/
public void setLanguages(Set<String> languages) {
this._languages = new HashSet(languages);
}

/**
* Returns a String representation of a <code>PCAppPerson</code> object.
*
Original file line number Diff line number Diff line change
@@ -18,10 +18,13 @@
package org.apache.jdo.tck.pc.companyAnnotatedPC;

import java.io.Serializable;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.jdo.annotations.Column;
import javax.jdo.annotations.DatastoreIdentity;
import javax.jdo.annotations.Discriminator;
@@ -63,6 +66,7 @@ public class PCDSPerson
@NotPersistent() private Date _birthdate;
@NotPersistent() private PCDSAddress _address;
@NotPersistent() private Map<String, String> _phoneNumbers = new HashMap<>();
@NotPersistent() private Set<String> _languages = new HashSet<>();

/** This is the JDO-required no-args constructor. */
protected PCDSPerson() {}
@@ -294,6 +298,24 @@ public void setPhoneNumbers(Map<String, String> phoneNumbers) {
this._phoneNumbers = (phoneNumbers != null) ? new HashMap<>(phoneNumbers) : null;
}

/**
* Get the map of languages as an unmodifiable Set.
*
* @return The set of languages, as an unmodifiable set.
*/
public Set<String> getLanguages() {
return Collections.unmodifiableSet(_languages);
}

/**
* Set the languages set to be in this person.
*
* @param languages The map of phoneNumbers for this person.
*/
public void setLanguages(Set<String> languages) {
this._languages = new HashSet(languages);
}

/**
* Returns a String representation of a <code>PCDSPerson</code> object.
*
Original file line number Diff line number Diff line change
@@ -19,9 +19,11 @@

import java.util.Date;
import java.util.Map;
import java.util.Set;
import javax.jdo.annotations.Column;
import javax.jdo.annotations.Discriminator;
import javax.jdo.annotations.DiscriminatorStrategy;
import javax.jdo.annotations.Element;
import javax.jdo.annotations.Embedded;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.Inheritance;
@@ -85,6 +87,11 @@ public interface PIAppPerson extends IPerson {
@Value(types = java.lang.String.class, column = "PHONENO")
Map<String, String> getPhoneNumbers();

@Persistent(persistenceModifier = PersistenceModifier.PERSISTENT, table = "employee_languages")
@Join(column = "EMPID")
@Element(types = java.lang.String.class, column = "LANGUAGE")
Set<String> getLanguages();

void setPersonid(long personid);

void setLastname(String lastname);
Original file line number Diff line number Diff line change
@@ -19,10 +19,12 @@

import java.util.Date;
import java.util.Map;
import java.util.Set;
import javax.jdo.annotations.Column;
import javax.jdo.annotations.DatastoreIdentity;
import javax.jdo.annotations.Discriminator;
import javax.jdo.annotations.DiscriminatorStrategy;
import javax.jdo.annotations.Element;
import javax.jdo.annotations.Embedded;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.Inheritance;
@@ -83,6 +85,11 @@ public interface PIDSPerson extends IPerson {
@Value(types = java.lang.String.class, column = "PHONENO")
Map<String, String> getPhoneNumbers();

@Persistent(table = "employee_languages")
@Join(column = "EMPID")
@Element(types = java.lang.String.class, column = "LANGUAGE")
Set<String> getLanguages();

void setPersonid(long personid);

void setLastname(String lastname);
Original file line number Diff line number Diff line change
@@ -46,7 +46,7 @@ public class SampleModifyQueries extends QueryTest {
* <p>This query deletes all Employees who make more than the parameter salary.
*/
@Test
public void testQuery20() {
public void testQuery23() {
Transaction tx = pm.currentTransaction();
try {
tx.begin();
477 changes: 469 additions & 8 deletions tck/src/main/java/org/apache/jdo/tck/query/api/SampleReadQueries.java

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -90,6 +90,7 @@ org.apache.jdo.tck.pc.company.Person#lastname=jdo:persistent,annotation:dfg
org.apache.jdo.tck.pc.company.Person#middlename=jdo:persistent,annotation:mediated
org.apache.jdo.tck.pc.company.Person#personid=jdo:persistent,annotation:key
org.apache.jdo.tck.pc.company.Person#phoneNumbers=jdo:persistent,annotation:mediated
org.apache.jdo.tck.pc.company.Person#languages=jdo:persistent,annotation:mediated

org.apache.jdo.tck.pc.company.Project=jdo:persistent,oid:org.apache.jdo.tck.pc.company.Project$Oid
org.apache.jdo.tck.pc.company.Project#budget=jdo:persistent,annotation:dfg
Original file line number Diff line number Diff line change
@@ -131,6 +131,9 @@ has application identity.
<field name="phoneNumbers" persistence-modifier="persistent">
<map key-type="String" value-type="String"/>
</field>
<field name="languages" persistence-modifier="persistent">
<collection element-type="java.lang.String"/>
</field>
<query name="validNotUnique">
SELECT firstname, lastname
INTO org.apache.jdo.tck.query.result.classes.FullName
@@ -275,6 +278,9 @@ has application identity.
<property name="phoneNumbers" persistence-modifier="persistent">
<map key-type="String" value-type="String"/>
</property>
<property name="languages" persistence-modifier="persistent">
<collection element-type="java.lang.String"/>
</property>
<query name="validNotUnique">
SELECT firstname, lastname
INTO org.apache.jdo.tck.query.result.classes.FullName
Original file line number Diff line number Diff line change
@@ -90,6 +90,7 @@ org.apache.jdo.tck.pc.company.Person#lastname=jdo:persistent,annotation:dfg
org.apache.jdo.tck.pc.company.Person#middlename=jdo:persistent,annotation:mediated
org.apache.jdo.tck.pc.company.Person#personid=jdo:persistent,annotation:dfg
org.apache.jdo.tck.pc.company.Person#phoneNumbers=jdo:persistent,annotation:mediated
org.apache.jdo.tck.pc.company.Person#languages=jdo:persistent,annotation:mediated

org.apache.jdo.tck.pc.company.Project=jdo:persistent
org.apache.jdo.tck.pc.company.Project#budget=jdo:persistent,annotation:dfg
Original file line number Diff line number Diff line change
@@ -106,6 +106,9 @@ has datastore identity.
<field name="phoneNumbers" persistence-modifier="persistent">
<map key-type="String" value-type="String"/>
</field>
<field name="languages" persistence-modifier="persistent">
<collection element-type="java.lang.String"/>
</field>
<query name="validNotUnique">
SELECT firstname, lastname
INTO org.apache.jdo.tck.query.result.classes.FullName
@@ -241,6 +244,9 @@ has datastore identity.
<property name="phoneNumbers" persistence-modifier="persistent">
<map key-type="String" value-type="String"/>
</property>
<property name="languages" persistence-modifier="persistent">
<collection element-type="java.lang.String"/>
</property>
<query name="validNotUnique">
SELECT firstname, lastname
INTO org.apache.jdo.tck.query.result.classes.FullName
Original file line number Diff line number Diff line change
@@ -150,6 +150,10 @@ has application identity.
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
<field name="languages" table="employee_languages" >
<join column="EMPID"/>
<element column="LANGUAGE"/>
</field>
<query name="packageORM">
SELECT FROM org.apache.jdo.tck.pc.company.Person
WHERE personid > 2
@@ -314,6 +318,10 @@ has application identity.
<key column="TYPE"/>
<value column="PHONENO"/>
</property>
<property name="languages" table="employee_languages" >
<join column="EMPID"/>
<element column="LANGUAGE"/>
</property>
<query name="packageORM">
SELECT FROM org.apache.jdo.tck.pc.company.Person
WHERE personid > 2
Original file line number Diff line number Diff line change
@@ -133,6 +133,10 @@ Inheritance strategy: new-table for all classes.
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
<field name="languages" table="employee_languages" >
<join column="EMPID"/>
<element column="LANGUAGE"/>
</field>
</class>

<class name="Insurance" table="insuranceplans">
Original file line number Diff line number Diff line change
@@ -97,6 +97,10 @@ Inheritance strategy:
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
<field name="Person.languages" table="parttime_employee_languages" >
<join column="EMPID"/>
<value column="LANGUAGE"/>
</field>
<field name="Employee.hiredate" column="HIREDATE"/>
<field name="Employee.weeklyhours" column="WEEKLYHOURS"/>
<field name="Employee.dentalInsurance" mapped-by="employee"/>
@@ -147,6 +151,10 @@ Inheritance strategy:
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
<field name="Person.languages" table="fulltime_employee_languages" >
<join column="EMPID"/>
<value column="LANGUAGE"/>
</field>
<field name="Employee.hiredate" column="HIREDATE"/>
<field name="Employee.weeklyhours" column="WEEKLYHOURS"/>
<field name="Employee.dentalInsurance" mapped-by="employee"/>
@@ -201,6 +209,10 @@ Inheritance strategy:
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
<field name="languages" table="employee_languages" >
<join column="EMPID"/>
<element column="LANGUAGE"/>
</field>
</class>

<class name="Insurance">
Original file line number Diff line number Diff line change
@@ -133,6 +133,10 @@ MedicalInsurance and DentalInsurance have inheritance strategy "new-table".
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
<field name="languages" table="employee_languages" >
<join column="EMPID"/>
<element column="LANGUAGE"/>
</field>
</class>

<class name="Insurance">
Original file line number Diff line number Diff line change
@@ -131,6 +131,10 @@ have inheritance strategy "superclass-table".
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
<field name="languages" table="employee_languages" >
<join column="EMPID"/>
<element column="LANGUAGE"/>
</field>
</class>

<class name="Insurance" table="insuranceplans">
Original file line number Diff line number Diff line change
@@ -156,6 +156,10 @@ has datastore identity.
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
<field name="languages" table="employee_languages" >
<join column="EMPID"/>
<element column="LANGUAGE"/>
</field>
<query name="packageORM">
SELECT FROM org.apache.jdo.tck.pc.company.Person
WHERE personid > 2
@@ -321,6 +325,10 @@ has datastore identity.
<key column="TYPE"/>
<value column="PHONENO"/>
</property>
<property name="languages" table="employee_languages" >
<join column="EMPID"/>
<element column="LANGUAGE"/>
</property>
<query name="packageORM">
SELECT FROM org.apache.jdo.tck.pc.company.Person
WHERE personid > 2
Original file line number Diff line number Diff line change
@@ -140,6 +140,10 @@ Inheritance strategy: new-table for all classes.
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
<field name="languages" table="employee_languages" >
<join column="EMPID"/>
<element column="LANGUAGE"/>
</field>
</class>

<class name="Insurance" table="insuranceplans">
Original file line number Diff line number Diff line change
@@ -102,6 +102,10 @@ Inheritance strategy:
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
<field name="Person.languages" table="parttime_employee_languages" >
<join column="EMPID"/>
<value column="LANGUAGE"/>
</field>
<field name="Employee.hiredate" column="HIREDATE"/>
<field name="Employee.weeklyhours" column="WEEKLYHOURS"/>
<field name="Employee.dentalInsurance" mapped-by="employee"/>
@@ -157,6 +161,10 @@ Inheritance strategy:
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
<field name="languages" table="fulltime_employee_languages" >
<join column="EMPID"/>
<value column="LANGUAGE"/>
</field>
<field name="Employee.hiredate" column="HIREDATE"/>
<field name="Employee.weeklyhours" column="WEEKLYHOURS"/>
<field name="Employee.dentalInsurance" mapped-by="employee"/>
@@ -216,6 +224,10 @@ Inheritance strategy:
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
<field name="languages" table="employee_languages" >
<join column="EMPID"/>
<element column="LANGUAGE"/>
</field>
</class>

<class name="Insurance">
Original file line number Diff line number Diff line change
@@ -140,6 +140,10 @@ MedicalInsurance and DentalInsurance have inheritance strategy "new-table".
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
<field name="languages" table="employee_languages" >
<join column="EMPID"/>
<element column="LANGUAGE"/>
</field>
</class>

<class name="Insurance" table="insuranceplans">
Original file line number Diff line number Diff line change
@@ -138,6 +138,10 @@ have inheritance strategy "superclass-table".
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
<field name="languages" table="employee_languages" >
<join column="EMPID"/>
<element column="LANGUAGE"/>
</field>
</class>

<class name="Insurance" table="insuranceplans">
Original file line number Diff line number Diff line change
@@ -292,6 +292,7 @@ DROP TABLE insuranceplans;
DROP TABLE project_reviewer;
DROP TABLE project_member;
DROP TABLE project_member_jpa;
DROP TABLE employee_languages;
DROP TABLE employee_phoneno_type;
DROP TABLE persons;
DROP TABLE projects;
@@ -407,6 +408,11 @@ CREATE TABLE employee_phoneno_type (
TYPE VARCHAR(16) NOT NULL
);

CREATE TABLE employee_languages (
EMPID INTEGER REFERENCES persons NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL
);

ALTER TABLE project_reviewer
ADD CONSTRAINT PR_PROJ_FK FOREIGN KEY
(PROJID) REFERENCES projects(PROJID);
Original file line number Diff line number Diff line change
@@ -38,6 +38,7 @@ DROP TABLE medicalinsurance;
DROP TABLE insuranceplans;
DROP TABLE project_reviewer;
DROP TABLE project_member;
DROP TABLE employee_languages;
DROP TABLE employee_phoneno_type;
DROP TABLE fulltimeemployees;
DROP TABLE parttimeemployees;
@@ -168,7 +169,12 @@ CREATE TABLE employee_phoneno_type (
TYPE VARCHAR(16) NOT NULL
);

ALTER TABLE project_reviewer
CREATE TABLE employee_languages (
EMPID INTEGER REFERENCES persons NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL
);

ALTER TABLE project_reviewer
ADD CONSTRAINT PR_PROJ_FK FOREIGN KEY
(PROJID) REFERENCES projects(PROJID);

Original file line number Diff line number Diff line change
@@ -37,6 +37,7 @@ ALTER TABLE insuranceplans DROP CONSTRAINT INS_EMP_FK;
DROP TABLE insuranceplans;
DROP TABLE project_reviewer;
DROP TABLE project_member;
DROP TABLE employee_languages;
DROP TABLE employee_phoneno_type;
DROP TABLE persons;
DROP TABLE projects;
@@ -147,7 +148,12 @@ CREATE TABLE employee_phoneno_type (
TYPE VARCHAR(16) NOT NULL
);

ALTER TABLE project_reviewer
CREATE TABLE employee_languages (
EMPID INTEGER REFERENCES persons NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL
);

ALTER TABLE project_reviewer
ADD CONSTRAINT PR_PROJ_FK FOREIGN KEY
(PROJID) REFERENCES projects(PROJID);

20 changes: 19 additions & 1 deletion tck/src/main/resources/sql/derby/applicationidentity/schema2.sql
Original file line number Diff line number Diff line change
@@ -45,6 +45,9 @@ DROP TABLE dentalinsurance;
DROP TABLE medicalinsurance;
DROP TABLE project_reviewer;
DROP TABLE project_member;
DROP TABLE employee_languages;
DROP TABLE fulltime_employee_languages;
DROP TABLE parttime_employee_languages;
DROP TABLE employee_phoneno_type;
DROP TABLE fulltime_employee_phoneno_type;
DROP TABLE parttime_employee_phoneno_type;
@@ -202,7 +205,22 @@ CREATE TABLE parttime_employee_phoneno_type (
TYPE VARCHAR(16) NOT NULL
);

ALTER TABLE project_reviewer
CREATE TABLE employee_languages(
EMPID INTEGER REFERENCES persons NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL
);

CREATE TABLE fulltime_employee_languages (
EMPID INTEGER REFERENCES fulltimeemployees NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL
);

CREATE TABLE parttime_employee_languages (
EMPID INTEGER REFERENCES parttimeemployees NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL
);

ALTER TABLE project_reviewer
ADD CONSTRAINT PR_PROJ_FK FOREIGN KEY
(PROJID) REFERENCES projects(PROJID);

Original file line number Diff line number Diff line change
@@ -40,6 +40,7 @@ DROP TABLE dentalinsurance;
DROP TABLE medicalinsurance;
DROP TABLE project_reviewer;
DROP TABLE project_member;
DROP TABLE employee_languages;
DROP TABLE employee_phoneno_type;
DROP TABLE fulltimeemployees;
DROP TABLE parttimeemployees;
@@ -165,7 +166,12 @@ CREATE TABLE employee_phoneno_type (
TYPE VARCHAR(16) NOT NULL
);

ALTER TABLE project_reviewer
CREATE TABLE employee_languages (
EMPID INTEGER REFERENCES persons NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL
);

ALTER TABLE project_reviewer
ADD CONSTRAINT PR_PROJ_FK FOREIGN KEY
(PROJID) REFERENCES projects(PROJID);

Original file line number Diff line number Diff line change
@@ -36,6 +36,7 @@ ALTER TABLE project_reviewer DROP CONSTRAINT PR_REV_FK;
DROP TABLE insuranceplans;
DROP TABLE project_reviewer;
DROP TABLE project_member;
DROP TABLE employee_languages;
DROP TABLE employee_phoneno_type;
DROP TABLE employees;
DROP TABLE persons;
@@ -142,7 +143,12 @@ CREATE TABLE employee_phoneno_type (
TYPE VARCHAR(16) NOT NULL
);

ALTER TABLE project_reviewer
CREATE TABLE employee_languages (
EMPID INTEGER REFERENCES persons NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL
);

ALTER TABLE project_reviewer
ADD CONSTRAINT PR_PROJ_FK FOREIGN KEY
(PROJID) REFERENCES projects(PROJID);

Original file line number Diff line number Diff line change
@@ -226,6 +226,7 @@ ALTER TABLE insuranceplans DROP CONSTRAINT INS_EMP_FK;
DROP TABLE insuranceplans;
DROP TABLE project_reviewer;
DROP TABLE project_member;
DROP TABLE employee_languages;
DROP TABLE employee_phoneno_type;
DROP TABLE persons;
DROP TABLE projects;
@@ -344,7 +345,12 @@ CREATE TABLE employee_phoneno_type (
TYPE VARCHAR(16) NOT NULL
);

ALTER TABLE project_reviewer
CREATE TABLE employee_languages (
EMPID INTEGER REFERENCES persons NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL
);

ALTER TABLE project_reviewer
ADD CONSTRAINT PR_PROJ_FK FOREIGN KEY
(PROJID) REFERENCES projects;

10 changes: 9 additions & 1 deletion tck/src/main/resources/sql/derby/datastoreidentity/schema1.sql
Original file line number Diff line number Diff line change
@@ -38,6 +38,7 @@ DROP TABLE medicalinsurance;
DROP TABLE insuranceplans;
DROP TABLE project_reviewer;
DROP TABLE project_member;
DROP TABLE employee_languages;
DROP TABLE employee_phoneno_type;
DROP TABLE fulltimeemployees;
DROP TABLE parttimeemployees;
@@ -197,7 +198,14 @@ CREATE TABLE employee_phoneno_type (
REFERENCES persons (DATASTORE_IDENTITY)
);

ALTER TABLE project_reviewer
CREATE TABLE employee_languages (
EMPID INTEGER REFERENCES persons NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL,
CONSTRAINT employee_languages_EMPID FOREIGN KEY (EMPID)
REFERENCES persons (DATASTORE_IDENTITY)
);

ALTER TABLE project_reviewer
ADD CONSTRAINT PR_PROJ_FK FOREIGN KEY
(PROJID) REFERENCES projects(DATASTORE_IDENTITY);

Original file line number Diff line number Diff line change
@@ -37,6 +37,7 @@ ALTER TABLE insuranceplans DROP CONSTRAINT INS_EMP_FK;
DROP TABLE insuranceplans;
DROP TABLE project_reviewer;
DROP TABLE project_member;
DROP TABLE employee_languages;
DROP TABLE employee_phoneno_type;
DROP TABLE persons;
DROP TABLE projects;
@@ -155,7 +156,12 @@ CREATE TABLE employee_phoneno_type (
TYPE VARCHAR(16) NOT NULL
);

ALTER TABLE project_reviewer
CREATE TABLE employee_languages (
EMPID INTEGER REFERENCES persons NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL
);

ALTER TABLE project_reviewer
ADD CONSTRAINT PR_PROJ_FK FOREIGN KEY
(PROJID) REFERENCES projects;

26 changes: 25 additions & 1 deletion tck/src/main/resources/sql/derby/datastoreidentity/schema2.sql
Original file line number Diff line number Diff line change
@@ -45,6 +45,9 @@ DROP TABLE dentalinsurance;
DROP TABLE medicalinsurance;
DROP TABLE project_reviewer;
DROP TABLE project_member;
DROP TABLE employee_languages;
DROP TABLE fulltime_employee_languages;
DROP TABLE parttime_employee_languages;
DROP TABLE employee_phoneno_type;
DROP TABLE fulltime_employee_phoneno_type;
DROP TABLE parttime_employee_phoneno_type;
@@ -247,7 +250,28 @@ CREATE TABLE parttime_employee_phoneno_type (
REFERENCES parttimeemployees (DATASTORE_IDENTITY)
);

ALTER TABLE project_reviewer
CREATE TABLE employee_languages (
EMPID INTEGER NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL,
CONSTRAINT EMP_LANGUAGE_PERSONS FOREIGN KEY (EMPID)
REFERENCES persons (DATASTORE_IDENTITY)
);

CREATE TABLE fulltime_employee_languages (
EMPID INTEGER NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL,
CONSTRAINT FTEMP_LANGUAGE_FTEMP FOREIGN KEY (EMPID)
REFERENCES fulltimeemployees (DATASTORE_IDENTITY)
);

CREATE TABLE parttime_employee_languages (
EMPID INTEGER REFERENCES parttimeemployees NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL,
CONSTRAINT PTEMP_LANGUAGE_PTEMP FOREIGN KEY (EMPID)
REFERENCES parttimeemployees (DATASTORE_IDENTITY)
);

ALTER TABLE project_reviewer
ADD CONSTRAINT PR_PROJ_FK FOREIGN KEY
(PROJID) REFERENCES projects;

Original file line number Diff line number Diff line change
@@ -40,6 +40,7 @@ DROP TABLE dentalinsurance;
DROP TABLE medicalinsurance;
DROP TABLE project_reviewer;
DROP TABLE project_member;
DROP TABLE employee_languages;
DROP TABLE employee_phoneno_type;
DROP TABLE fulltimeemployees;
DROP TABLE parttimeemployees;
@@ -204,6 +205,13 @@ CREATE TABLE employee_phoneno_type (
REFERENCES persons (DATASTORE_IDENTITY)
);

CREATE TABLE employee_languages (
EMPID INTEGER NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL,
CONSTRAINT EMP_LANGUAGE_PERSONS FOREIGN KEY (EMPID)
REFERENCES persons (DATASTORE_IDENTITY)
);

ALTER TABLE project_reviewer
ADD CONSTRAINT PR_PROJ_FK FOREIGN KEY
(PROJID) REFERENCES projects;
10 changes: 9 additions & 1 deletion tck/src/main/resources/sql/derby/datastoreidentity/schema4.sql
Original file line number Diff line number Diff line change
@@ -36,6 +36,7 @@ ALTER TABLE project_reviewer DROP CONSTRAINT PR_REV_FK;
DROP TABLE insuranceplans;
DROP TABLE project_reviewer;
DROP TABLE project_member;
DROP TABLE employee_languages;
DROP TABLE employee_phoneno_type;
DROP TABLE employees;
DROP TABLE persons;
@@ -167,7 +168,14 @@ CREATE TABLE employee_phoneno_type (
REFERENCES persons (DATASTORE_IDENTITY)
);

ALTER TABLE project_reviewer
CREATE TABLE employee_languages (
EMPID INTEGER NOT NULL,
LANGUAGE VARCHAR(255) NOT NULL,
CONSTRAINT employee_languages_EMPID FOREIGN KEY (EMPID)
REFERENCES persons (DATASTORE_IDENTITY)
);

ALTER TABLE project_reviewer
ADD CONSTRAINT PR_PROJ_FK FOREIGN KEY
(PROJID) REFERENCES projects;

Original file line number Diff line number Diff line change
@@ -143,6 +143,12 @@
<entry key="work"><value>123456-1</value></entry>
</map>
</property>
<property name="languages">
<set>
<value>German</value>
<value>English</value>
</set>
</property>
<property name="department"><ref bean="dept1"/></property>
<property name="fundingDept"><ref bean="dept2"/></property>
<property name="manager"><ref bean="emp2"/></property>
@@ -178,6 +184,12 @@
<entry key="work"><value>123456-2</value></entry>
</map>
</property>
<property name="languages">
<set>
<value>English</value>
<value>Japanese</value>
</set>
</property>
<property name="department"><ref bean="dept1"/></property>
<property name="fundingDept"><ref bean="dept1"/></property>
<property name="mentor"><ref bean="emp3"/></property>
@@ -216,6 +228,12 @@
<entry key="work"><value>123456-3</value></entry>
</map>
</property>
<property name="languages">
<set>
<value>English</value>
<value>French</value>
</set>
</property>
<property name="department"><ref bean="dept1"/></property>
<property name="fundingDept"><ref bean="dept1"/></property>
<property name="manager"><ref bean="emp2"/></property>
@@ -246,6 +264,11 @@
<entry key="work"><value>124456-3</value></entry>
</map>
</property>
<property name="languages">
<set>
<value>English</value>
</set>
</property>
<property name="department"><ref bean="dept2"/></property>
<property name="fundingDept"><ref bean="dept2"/></property>
<property name="manager"><ref bean="emp2"/></property>
@@ -280,6 +303,14 @@
<entry key="work"><value>126456-3</value></entry>
</map>
</property>
<property name="languages">
<set>
<value>German</value>
<value>English</value>
<value>French</value>
<value>Japanese</value>
</set>
</property>
<property name="department"><ref bean="dept2"/></property>
<property name="fundingDept"><ref bean="dept2"/></property>
<property name="manager"><ref bean="emp2"/></property>