This is an automated email from the ASF dual-hosted git repository.
ntimofeev pushed a commit to branch STABLE-4.2
in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/STABLE-4.2 by this push:
new 902e297ab CAY-2794 Fix Incorrect JavaType for Vertical-Inheritance
Attributes
new d6c6f1e5d Merge pull request #565 from swarmbox/CAY-2794
902e297ab is described below
commit 902e297abdea92f012a62160cf9e8692ef7f5830
Author: Matt Watson <[email protected]>
AuthorDate: Tue Feb 14 16:53:50 2023 -0800
CAY-2794 Fix Incorrect JavaType for Vertical-Inheritance Attributes
---
.../cayenne/access/VerticalInheritanceIT.java | 2 ++
.../testdo/inheritance_vertical/auto/_IvImpl.java | 21 +++++++++++++++++++++
.../src/test/resources/inheritance-vertical.map.xml | 2 ++
3 files changed, 25 insertions(+)
diff --git
a/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java
b/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java
index 8aa1b7e94..a0cf075f7 100644
---
a/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java
+++
b/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java
@@ -38,6 +38,7 @@ import org.junit.Test;
import java.sql.SQLException;
import java.sql.Types;
import java.util.Collections;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -641,6 +642,7 @@ public class VerticalInheritanceIT extends ServerCase {
IvImpl impl = context.newObject(IvImpl.class);
impl.setName("Impl 1");
+ impl.setAttr0(new Date());
impl.setAttr1("attr1");
impl.setAttr2("attr2");
impl.setOther1(other1);
diff --git
a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImpl.java
b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImpl.java
index d81814ea6..a9f452357 100644
---
a/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImpl.java
+++
b/cayenne-server/src/test/java/org/apache/cayenne/testdo/inheritance_vertical/auto/_IvImpl.java
@@ -3,7 +3,9 @@ package org.apache.cayenne.testdo.inheritance_vertical.auto;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.util.Date;
+import org.apache.cayenne.exp.property.DateProperty;
import org.apache.cayenne.exp.property.EntityProperty;
import org.apache.cayenne.exp.property.PropertyFactory;
import org.apache.cayenne.exp.property.StringProperty;
@@ -22,17 +24,29 @@ public abstract class _IvImpl extends IvBase {
public static final String ID_PK_COLUMN = "ID";
+ public static final DateProperty<Date> ATTR0 =
PropertyFactory.createDate("attr0", Date.class);
public static final StringProperty<String> ATTR1 =
PropertyFactory.createString("attr1", String.class);
public static final StringProperty<String> ATTR2 =
PropertyFactory.createString("attr2", String.class);
public static final EntityProperty<IvOther> OTHER1 =
PropertyFactory.createEntity("other1", IvOther.class);
public static final EntityProperty<IvOther> OTHER2 =
PropertyFactory.createEntity("other2", IvOther.class);
+ protected Date attr0;
protected String attr1;
protected String attr2;
protected Object other1;
protected Object other2;
+ public void setAttr0(Date attr0) {
+ beforePropertyWrite("attr0", this.attr0, attr0);
+ this.attr0 = attr0;
+ }
+
+ public Date getAttr0() {
+ beforePropertyRead("attr0");
+ return this.attr0;
+ }
+
public void setAttr1(String attr1) {
beforePropertyWrite("attr1", this.attr1, attr1);
this.attr1 = attr1;
@@ -76,6 +90,8 @@ public abstract class _IvImpl extends IvBase {
}
switch(propName) {
+ case "attr0":
+ return this.attr0;
case "attr1":
return this.attr1;
case "attr2":
@@ -96,6 +112,9 @@ public abstract class _IvImpl extends IvBase {
}
switch (propName) {
+ case "attr0":
+ this.attr0 = (Date)val;
+ break;
case "attr1":
this.attr1 = (String)val;
break;
@@ -124,6 +143,7 @@ public abstract class _IvImpl extends IvBase {
@Override
protected void writeState(ObjectOutputStream out) throws IOException {
super.writeState(out);
+ out.writeObject(this.attr0);
out.writeObject(this.attr1);
out.writeObject(this.attr2);
out.writeObject(this.other1);
@@ -133,6 +153,7 @@ public abstract class _IvImpl extends IvBase {
@Override
protected void readState(ObjectInputStream in) throws IOException,
ClassNotFoundException {
super.readState(in);
+ this.attr0 = (Date)in.readObject();
this.attr1 = (String)in.readObject();
this.attr2 = (String)in.readObject();
this.other1 = in.readObject();
diff --git a/cayenne-server/src/test/resources/inheritance-vertical.map.xml
b/cayenne-server/src/test/resources/inheritance-vertical.map.xml
index b7ed482d0..9c2939727 100644
--- a/cayenne-server/src/test/resources/inheritance-vertical.map.xml
+++ b/cayenne-server/src/test/resources/inheritance-vertical.map.xml
@@ -53,6 +53,7 @@
<db-attribute name="SUB1_NAME" type="VARCHAR" length="100"/>
</db-entity>
<db-entity name="IV_IMPL">
+ <db-attribute name="ATTR0" type="DATE"/>
<db-attribute name="ATTR1" type="VARCHAR" length="100"/>
<db-attribute name="ATTR2" type="VARCHAR" length="100"/>
<db-attribute name="ID" type="INTEGER" isPrimaryKey="true"
isMandatory="true"/>
@@ -133,6 +134,7 @@
</obj-entity>
<obj-entity name="IvImpl" superEntityName="IvBase"
className="org.apache.cayenne.testdo.inheritance_vertical.IvImpl">
<qualifier><![CDATA[type = "I"]]></qualifier>
+ <obj-attribute name="attr0" type="java.util.Date"
db-attribute-path="impl.ATTR0"/>
<obj-attribute name="attr1" type="java.lang.String"
db-attribute-path="impl.ATTR1"/>
<obj-attribute name="attr2" type="java.lang.String"
db-attribute-path="impl.ATTR2"/>
</obj-entity>