[cayenne] branch master updated: Allow to process self char content for `NamespaceAwareNestedTagHandler`
This is an automated email from the ASF dual-hosted git repository. ntimofeev pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cayenne.git The following commit(s) were added to refs/heads/master by this push: new 5adac9355 Allow to process self char content for `NamespaceAwareNestedTagHandler` 5adac9355 is described below commit 5adac93557c20b9e872c34def6a85e918b07a63b Author: Nikita Timofeev AuthorDate: Fri Jan 27 19:01:40 2023 +0300 Allow to process self char content for `NamespaceAwareNestedTagHandler` --- .../java/org/apache/cayenne/gen/xml/CgenConfigHandler.java | 3 ++- .../java/org/apache/cayenne/dbsync/xml/CatalogHandler.java | 3 ++- .../main/java/org/apache/cayenne/dbsync/xml/ConfigHandler.java | 3 ++- .../org/apache/cayenne/dbsync/xml/IncludeTableHandler.java | 3 ++- .../main/java/org/apache/cayenne/dbsync/xml/SchemaHandler.java | 3 ++- .../java/org/apache/cayenne/dbsync/xml/TableTypesHandler.java | 3 ++- .../org/apache/cayenne/configuration/xml/DbEntityHandler.java | 3 ++- .../cayenne/configuration/xml/DbKeyGeneratorHandler.java | 3 ++- .../configuration/xml/NamespaceAwareNestedTagHandler.java | 10 +++--- .../org/apache/cayenne/configuration/xml/ObjEntityHandler.java | 3 ++- .../cayenne/configuration/xml/QueryDescriptorHandler.java | 3 ++- 11 files changed, 27 insertions(+), 13 deletions(-) diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java index 3185bcd42..a552ff52c 100644 --- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java +++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java @@ -83,7 +83,7 @@ public class CgenConfigHandler extends NamespaceAwareNestedTagHandler { } @Override -protected void processCharData(String localName, String data) { +protected boolean processCharData(String localName, String data) { switch (localName) { case NAME: setName(data); @@ -139,6 +139,7 @@ public class CgenConfigHandler extends NamespaceAwareNestedTagHandler { createSuperPkg(data); break; } +return true; } private void setName(String name) { diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/xml/CatalogHandler.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/xml/CatalogHandler.java index 0c92e28ef..dc9450546 100644 --- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/xml/CatalogHandler.java +++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/xml/CatalogHandler.java @@ -84,7 +84,7 @@ class CatalogHandler extends NamespaceAwareNestedTagHandler { } @Override -protected void processCharData(String localName, String data) { +protected boolean processCharData(String localName, String data) { switch (localName) { case INCLUDE_TABLE_TAG: createIncludeTable(data); @@ -108,6 +108,7 @@ class CatalogHandler extends NamespaceAwareNestedTagHandler { createExcludeProcedure(data); break; } +return true; } private void createIncludeTable(String includeTableData) { diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/xml/ConfigHandler.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/xml/ConfigHandler.java index 40f2d8ab6..3d7cacd44 100644 --- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/xml/ConfigHandler.java +++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/xml/ConfigHandler.java @@ -102,7 +102,7 @@ class ConfigHandler extends NamespaceAwareNestedTagHandler { } @Override -protected void processCharData(String localName, String data) { +protected boolean processCharData(String localName, String data) { switch (localName) { case DEFAULT_PACKAGE_TAG: createDefaultPackage(data); @@ -147,6 +147,7 @@ class ConfigHandler extends NamespaceAwareNestedTagHandler { createExcludeProcedure(data); break; } +return true; } private void createExcludeProcedure(String excludeProcedure) { diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/xml/IncludeTableHandler.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/xml/IncludeTableHandler.java index 5f7d1fe16..cf9b346d9 100644 --- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/xml/IncludeTableHandler.java +++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/xml/IncludeTableHandler.java @@ -57,7 +57,7 @@ class IncludeTableHandler extends NamespaceAwareNestedTagHandler { } @Override -protected void processCharData(String localName, String data) { +protected boolean
[jira] [Closed] (CAY-2789) MalformedJsonException thrown when reading manually edited JSON data in Postgres
[ https://issues.apache.org/jira/browse/CAY-2789?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikita Timofeev closed CAY-2789. Resolution: Fixed *4.2*: https://github.com/apache/cayenne/commit/ca04d2bd2d49d338b701dbf3005c8b34372ed508 *5.0*: https://github.com/apache/cayenne/pull/557 > MalformedJsonException thrown when reading manually edited JSON data in > Postgres > > > Key: CAY-2789 > URL: https://issues.apache.org/jira/browse/CAY-2789 > Project: Cayenne > Issue Type: Bug > Components: Database integration >Affects Versions: 4.2.RC2, 4.2.M3, 4.2.B1, 4.2.RC1 > Environment: PostgreSQL 15 > Windows 10 > Cayenne 4.2.RC2 > IntelliJ IDEA 2022.3 >Reporter: Nikita Timofeev >Assignee: Nikita Timofeev >Priority: Major > Fix For: 4.2, 5.0.M1 > > Time Spent: 20m > Remaining Estimate: 0h > > Encountered this exception while modifying JSON data in the DB: > {{org.apache.cayenne.value.json.MalformedJsonException: Unexpected end of > document}} > The data in question is simple test JSON like this: > {code} > {"test": "some value"} > {code} > Same exact data that is inserted via java code is totally fine. > I suspect that it could be Windows related, but need to check. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (CAY-2552) ColumnQuery with flattened attributes bug
[ https://issues.apache.org/jira/browse/CAY-2552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17681315#comment-17681315 ] Nikita Timofeev commented on CAY-2552: -- *4.2*: https://github.com/apache/cayenne/commit/6211a66f0846e554bc272f4c8860a97eaa1fbbdc > ColumnQuery with flattened attributes bug > - > > Key: CAY-2552 > URL: https://issues.apache.org/jira/browse/CAY-2552 > Project: Cayenne > Issue Type: Bug > Components: Core Library >Affects Versions: 4.2.M1 >Reporter: Arseni Bulatski >Assignee: Nikita Timofeev >Priority: Major > Fix For: 4.2, 5.0.M1 > > Attachments: ColumnQuery_with_flattened_attribute_bug.patch > > Time Spent: 50m > Remaining Estimate: 0h > > Select entity with flattened attributes in column query. > Entry point: EntityRowReader > Fields size from segmentMetadata isn't equal to columns list size in > RowDescriptor. > You can see test case in attachment. > > This bugs appeared when worked on CAY-2529 Custom expression in DbJoin. Order > of attributes was changed and bug with wrong size broke tests. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[GitHub] [cayenne] stariy95 commented on a diff in pull request #559: Order in db import
stariy95 commented on code in PR #559: URL: https://github.com/apache/cayenne/pull/559#discussion_r1088860541 ## cayenne-server/src/main/resources/org/apache/cayenne/schema/11/dbimport.xsd: ## @@ -73,6 +71,8 @@ + Review Comment: This change would allow to place `schema` and `catalog` tags inside any type that inherits from `container`. And that includes `schema` that shouldn't allow that. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@cayenne.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[cayenne] branch STABLE-4.2 updated: CAY-2552 ColumnQuery with flattened attributes bug
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 6211a66f0 CAY-2552 ColumnQuery with flattened attributes bug 6211a66f0 is described below commit 6211a66f0846e554bc272f4c8860a97eaa1fbbdc Author: Nikita Timofeev AuthorDate: Fri Jan 27 14:29:41 2023 +0300 CAY-2552 ColumnQuery with flattened attributes bug --- RELEASE-NOTES.txt | 1 + .../select/DescriptorColumnExtractor.java | 17 ++- .../access/DataContextFlattenedAttributesIT.java | 148 - .../cayenne/access/VerticalInheritanceIT.java | 110 ++- .../select/DescriptorColumnExtractorIT.java| 86 .../map/DefaultEntityResultSegmentTest.java| 57 .../testdo/inheritance_vertical/auto/_Iv1Root.java | 2 +- .../testdo/inheritance_vertical/auto/_Iv1Sub1.java | 2 +- .../testdo/inheritance_vertical/auto/_Iv2Root.java | 2 +- .../testdo/inheritance_vertical/auto/_Iv2Sub1.java | 2 +- .../testdo/inheritance_vertical/auto/_Iv2X.java| 2 +- .../inheritance_vertical/auto/_IvAbstract.java | 2 +- .../testdo/inheritance_vertical/auto/_IvBase.java | 2 +- .../inheritance_vertical/auto/_IvBaseWithLock.java | 2 +- .../inheritance_vertical/auto/_IvConcrete.java | 2 +- .../inheritance_vertical/auto/_IvGenKeyRoot.java | 2 +- .../inheritance_vertical/auto/_IvGenKeySub.java| 2 +- .../testdo/inheritance_vertical/auto/_IvImpl.java | 2 +- .../inheritance_vertical/auto/_IvImplWithLock.java | 2 +- .../testdo/inheritance_vertical/auto/_IvOther.java | 2 +- .../testdo/inheritance_vertical/auto/_IvRoot.java | 2 +- .../testdo/inheritance_vertical/auto/_IvSub1.java | 22 ++- .../inheritance_vertical/auto/_IvSub1Sub1.java | 2 +- .../testdo/inheritance_vertical/auto/_IvSub2.java | 2 +- .../testdo/inheritance_vertical/auto/_IvSub3.java | 2 +- .../test/resources/inheritance-vertical.map.xml| 4 + 26 files changed, 451 insertions(+), 30 deletions(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index b8b33d185..530306011 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -15,6 +15,7 @@ Changes/New Features: Bug Fixes: +CAY-2552 ColumnQuery with flattened attributes bug CAY-2783 DbEntity to ObjEntity synchronization should check mandatory flag for primitive java types CAY-2789 MalformedJsonException thrown when reading manually edited JSON data in Postgres diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/DescriptorColumnExtractor.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/DescriptorColumnExtractor.java index 7f8025976..494519c75 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/DescriptorColumnExtractor.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/DescriptorColumnExtractor.java @@ -118,9 +118,16 @@ class DescriptorColumnExtractor extends BaseColumnExtractor implements PropertyV int count = result.getDbAttributes().size(); for(int i=0; i 1) { +String dataRowKey = result.getAttributePaths().get(i) + "." + dbAttribute.getName(); +resultNodeDescriptor.setDataRowKey(dataRowKey); +addEntityResultField(dataRowKey); +} else { +addEntityResultField(dbAttribute); +} } } @@ -177,6 +184,12 @@ class DescriptorColumnExtractor extends BaseColumnExtractor implements PropertyV } } +private void addEntityResultField(String nameForFlattenedAttribute) { +if (context.getQuery().needsResultSetMapping()) { +entityResult.addDbField(nameForFlattenedAttribute, nameForFlattenedAttribute); +} +} + @Override public boolean visitToMany(ToManyProperty property) { return true; diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java index adb152b79..8e04719a4 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java @@ -22,8 +22,12 @@ package org.apache.cayenne.access; import org.apache.cayenne.Cayenne; import org.apache.cayenne.ObjectContext; import org.apache.cayenne.PersistenceState; +import org.apache.cayenne.access.translator.select.DefaultSelectTranslator; import org.apache.cayenne.configuration.server.ServerRuntime; import org.apache.cayenne.di.Inject; +import
[jira] [Updated] (CAY-2552) ColumnQuery with flattened attributes bug
[ https://issues.apache.org/jira/browse/CAY-2552?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikita Timofeev updated CAY-2552: - Fix Version/s: 4.2 > ColumnQuery with flattened attributes bug > - > > Key: CAY-2552 > URL: https://issues.apache.org/jira/browse/CAY-2552 > Project: Cayenne > Issue Type: Bug > Components: Core Library >Affects Versions: 4.2.M1 >Reporter: Arseni Bulatski >Assignee: Nikita Timofeev >Priority: Major > Fix For: 4.2, 5.0.M1 > > Attachments: ColumnQuery_with_flattened_attribute_bug.patch > > Time Spent: 50m > Remaining Estimate: 0h > > Select entity with flattened attributes in column query. > Entry point: EntityRowReader > Fields size from segmentMetadata isn't equal to columns list size in > RowDescriptor. > You can see test case in attachment. > > This bugs appeared when worked on CAY-2529 Custom expression in DbJoin. Order > of attributes was changed and bug with wrong size broke tests. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[cayenne] branch STABLE-4.2 updated: CAY-2789 MalformedJsonException release notes
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 5092f6399 CAY-2789 MalformedJsonException release notes 5092f6399 is described below commit 5092f6399b2ca7ae95faf0741279e7f19cb087f5 Author: Nikita Timofeev AuthorDate: Fri Jan 27 14:10:08 2023 +0300 CAY-2789 MalformedJsonException release notes --- RELEASE-NOTES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index bb7b9458a..b8b33d185 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -16,6 +16,7 @@ Changes/New Features: Bug Fixes: CAY-2783 DbEntity to ObjEntity synchronization should check mandatory flag for primitive java types +CAY-2789 MalformedJsonException thrown when reading manually edited JSON data in Postgres -- Release: 4.2.RC2
[cayenne] branch STABLE-4.2 updated (78868d820 -> 52433d177)
This is an automated email from the ASF dual-hosted git repository. ntimofeev pushed a change to branch STABLE-4.2 in repository https://gitbox.apache.org/repos/asf/cayenne.git from 78868d820 Fix OpIdFactory test new ca04d2bd2 CAY-2789 MalformedJsonException thrown when reading manually edited JSON data in Postgres new 52433d177 Add JsonTokenizer trailing spaces test The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../apache/cayenne/value/json/JsonTokenizer.java | 3 +++ .../cayenne/value/json/JsonTokenizerTest.java | 28 ++ 2 files changed, 31 insertions(+)
[cayenne] 01/02: CAY-2789 MalformedJsonException thrown when reading manually edited JSON data in Postgres
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 commit ca04d2bd2d49d338b701dbf3005c8b34372ed508 Author: Mikhail Dzianishchyts AuthorDate: Tue Jan 17 11:22:45 2023 +0300 CAY-2789 MalformedJsonException thrown when reading manually edited JSON data in Postgres (cherry picked from commit 6634ecba37d0a7dd07eeff7643b03a5207b93951) --- .../main/java/org/apache/cayenne/value/json/JsonTokenizer.java | 3 +++ .../java/org/apache/cayenne/value/json/JsonTokenizerTest.java | 10 ++ 2 files changed, 13 insertions(+) diff --git a/cayenne-server/src/main/java/org/apache/cayenne/value/json/JsonTokenizer.java b/cayenne-server/src/main/java/org/apache/cayenne/value/json/JsonTokenizer.java index 14f415240..9ab9ec46e 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/value/json/JsonTokenizer.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/value/json/JsonTokenizer.java @@ -52,6 +52,9 @@ final class JsonTokenizer { while (position < data.length) { // skip whitespace skipWhitespace(); +if (position == data.length) { +break; +} JsonToken token = nextValue(); // only string could be used as an object member name if (states[currentState] == State.OBJECT_MEMBER_NAME) { diff --git a/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java b/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java index daea7cb05..c64d01415 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java @@ -28,6 +28,16 @@ import static org.junit.Assert.assertEquals; */ public class JsonTokenizerTest { +@Test +public void testEmpty() { +JsonTokenizer tokenizer; +JsonTokenizer.JsonToken token; + +tokenizer = new JsonTokenizer(""); +token = tokenizer.nextToken(); +assertEquals(JsonTokenizer.TokenType.NONE, token.type); +} + @Test public void testNull() { JsonTokenizer tokenizer;
[cayenne] 02/02: Add JsonTokenizer trailing spaces test
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 commit 52433d177709bd2d51e664ca01167766d7dbed2a Author: Mikhail Dzianishchyts AuthorDate: Tue Jan 17 11:42:03 2023 +0300 Add JsonTokenizer trailing spaces test (cherry picked from commit 67a895bba48e22a9b0db475fe8301beb8eaf6a09) --- .../apache/cayenne/value/json/JsonTokenizerTest.java | 18 ++ 1 file changed, 18 insertions(+) diff --git a/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java b/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java index c64d01415..990d63620 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java @@ -283,6 +283,24 @@ public class JsonTokenizerTest { assertEquals("abc", token5.toString()); } +@Test +public void testTrailingSpaces() { +JsonTokenizer tokenizer; +JsonTokenizer.JsonToken token; + +tokenizer = new JsonTokenizer("{\"test\": \"some value\"} \n"); +token = tokenizer.nextToken(); +assertEquals(JsonTokenizer.TokenType.OBJECT_START, token.type); +token = tokenizer.nextToken(); +assertEquals(JsonTokenizer.TokenType.STRING, token.type); +token = tokenizer.nextToken(); +assertEquals(JsonTokenizer.TokenType.STRING, token.type); +token = tokenizer.nextToken(); +assertEquals(JsonTokenizer.TokenType.OBJECT_END, token.type); +token = tokenizer.nextToken(); +assertEquals(JsonTokenizer.TokenType.NONE, token.type); +} + @Test public void testEmptyArray() { JsonTokenizer tokenizer = new JsonTokenizer("[]");
[cayenne] branch master updated: Use `Artist.SELF` for queries
This is an automated email from the ASF dual-hosted git repository. ntimofeev pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cayenne.git The following commit(s) were added to refs/heads/master by this push: new 0a6ab3672 Use `Artist.SELF` for queries 0a6ab3672 is described below commit 0a6ab3672effb3f124e9abb03a3aabe303a861e4 Author: Nikita Timofeev AuthorDate: Fri Jan 27 14:05:33 2023 +0300 Use `Artist.SELF` for queries --- .../org/apache/cayenne/query/ColumnSelectIT.java | 103 + 1 file changed, 43 insertions(+), 60 deletions(-) diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java index 5cd837429..248bcec05 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java @@ -111,8 +111,7 @@ public class ColumnSelectIT extends ServerCase { @Test public void testSelectGroupBy() throws Exception { -Object[] result = ObjectSelect.query(Artist.class) -.columns(Artist.DATE_OF_BIRTH, PropertyFactory.COUNT) +Object[] result = Artist.SELF.columnQuery(Artist.DATE_OF_BIRTH, PropertyFactory.COUNT) .orderBy(Artist.DATE_OF_BIRTH.asc()) .selectFirst(context); @@ -122,8 +121,7 @@ public class ColumnSelectIT extends ServerCase { @Test public void testSelectSimpleHaving() throws Exception { -Object[] result = ObjectSelect.query(Artist.class) -.columns(Artist.DATE_OF_BIRTH, PropertyFactory.COUNT) +Object[] result = Artist.SELF.columnQuery(Artist.DATE_OF_BIRTH, PropertyFactory.COUNT) .having(Artist.DATE_OF_BIRTH.eq(dateFormat.parse("1/2/17"))) .selectOne(context); @@ -135,7 +133,7 @@ public class ColumnSelectIT extends ServerCase { public void testHavingOnNonGroupByColumn() { StringProperty nameSubstr = Artist.ARTIST_NAME.substring(1, 6); -Object[] q = ObjectSelect.columnQuery(Artist.class, nameSubstr, PropertyFactory.COUNT) +Object[] q = Artist.SELF.columnQuery(nameSubstr, PropertyFactory.COUNT) .having(Artist.ARTIST_NAME.like("artist%")) .selectOne(context); assertEquals("artist", q[0]); @@ -144,8 +142,7 @@ public class ColumnSelectIT extends ServerCase { @Test public void testSelectRelationshipCount() throws Exception { -Object[] result = ObjectSelect.query(Artist.class) -.columns(Artist.DATE_OF_BIRTH, Artist.PAINTING_ARRAY.count()) +Object[] result = Artist.SELF.columnQuery(Artist.DATE_OF_BIRTH, Artist.PAINTING_ARRAY.count()) .orderBy(Artist.DATE_OF_BIRTH.asc()) .selectFirst(context); assertEquals(dateFormat.parse("1/1/17"), result[0]); @@ -157,8 +154,7 @@ public class ColumnSelectIT extends ServerCase { Object[] q = null; try { -q = ObjectSelect -.columnQuery(Artist.class, Artist.ARTIST_NAME.substring(1, 6).alias("name_substr"), PropertyFactory.COUNT) +q = Artist.SELF.columnQuery(Artist.ARTIST_NAME.substring(1, 6).alias("name_substr"), PropertyFactory.COUNT) .having(PropertyFactory.COUNT.gt(10L)) .selectOne(context); } catch (CayenneRuntimeException ex) { @@ -178,7 +174,7 @@ public class ColumnSelectIT extends ServerCase { Object[] q = null; try { -q = ObjectSelect.columnQuery(Artist.class, Artist.ARTIST_NAME.substring(1, 6), PropertyFactory.COUNT) +q = Artist.SELF.columnQuery(Artist.ARTIST_NAME.substring(1, 6), PropertyFactory.COUNT) .having(PropertyFactory.COUNT.gt(10L)) .selectOne(context); } catch (CayenneRuntimeException ex) { @@ -196,7 +192,7 @@ public class ColumnSelectIT extends ServerCase { public void testSelectWhereAndHaving() { Object[] q = null; try { -q = ObjectSelect.columnQuery(Artist.class, Artist.ARTIST_NAME.substring(1, 6).alias("name_substr"), PropertyFactory.COUNT) +q = Artist.SELF.columnQuery(Artist.ARTIST_NAME.substring(1, 6).alias("name_substr"), PropertyFactory.COUNT) .where(Artist.ARTIST_NAME.substring(1, 1).eq("a")) .having(PropertyFactory.COUNT.gt(10L)) .selectOne(context); @@ -213,7 +209,7 @@ public class ColumnSelectIT extends ServerCase { @Test public void testHavingWithoutAggregate() { -Object date = ObjectSelect.columnQuery(Artist.class, Artist.DATE_OF_BIRTH, Artist.ARTIST_NAME) +Object date = Artist.SELF.columnQuery(Artist.DATE_OF_BIRTH, Artist.ARTIST_NAME) .having(Artist.ARTIST_NAME.like("a%"))
[jira] [Updated] (CAY-2791) Unmapped columns are included in INSERT statements
[ https://issues.apache.org/jira/browse/CAY-2791?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikita Timofeev updated CAY-2791: - Fix Version/s: 5.0.M1 > Unmapped columns are included in INSERT statements > -- > > Key: CAY-2791 > URL: https://issues.apache.org/jira/browse/CAY-2791 > Project: Cayenne > Issue Type: Bug >Affects Versions: 4.2.RC1 >Reporter: Andrus Adamchik >Priority: Major > Fix For: 5.0.M1 > > > Columns mapped in DbEntity, but not mapped in ObjEntity are still included in > the generated INSERT statements because of this: > {noformat} > public InsertBatchQuery(DbEntity entity, int batchCapacity) { > super(entity, new ArrayList<>(entity.getAttributes()), batchCapacity); > } > {noformat} > This is not a new issue, but this is evil. It inserts explicit NULLs in all > unmapped columns, which is too big of an assumption to always work. E.g. I > have a case of "calculated" MySQL columns. Inserting NULLs in those causes > exceptions. > {noformat} > CALC_COLUMN decimal(12,6) GENERATED ALWAYS AS ((COL_A / COL_B)) STORED, > {noformat} > The workaround for me was to use "exclude column" rules in DB Import. But > the issue should still be addressed and not require a workaround. We need to > only insert in the columns that are relevant for the ObjEntity (i.e. those > mapped to ObjAttributes, pks and fks). -- This message was sent by Atlassian Jira (v8.20.10#820010)