Skip to content

Commit 35f6304

Browse files
committed
Added support for Json type in sqlServe and Oracle
1 parent 53cdf6e commit 35f6304

File tree

4 files changed

+10
-28
lines changed

4 files changed

+10
-28
lines changed

cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/BaseSQLTreeProcessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
/**
3535
* @since 4.2
3636
*/
37-
public class BaseSQLTreeProcessor extends SimpleNodeTreeVisitor implements SQLTreeProcessor {
37+
public class BaseSQLTreeProcessor extends TypeAwareSQLTreeProcessor implements SQLTreeProcessor {
3838

3939
@Override
4040
public Node process(Node node) {

cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,7 @@
3535
import org.apache.cayenne.access.sqlbuilder.sqltree.SQLTreeProcessor;
3636
import org.apache.cayenne.access.translator.ParameterBinding;
3737
import org.apache.cayenne.access.translator.ejbql.EJBQLTranslatorFactory;
38-
import org.apache.cayenne.access.types.ByteType;
39-
import org.apache.cayenne.access.types.ExtendedType;
40-
import org.apache.cayenne.access.types.ExtendedTypeFactory;
41-
import org.apache.cayenne.access.types.ExtendedTypeMap;
42-
import org.apache.cayenne.access.types.ShortType;
43-
import org.apache.cayenne.access.types.ValueObjectTypeRegistry;
38+
import org.apache.cayenne.access.types.*;
4439
import org.apache.cayenne.configuration.Constants;
4540
import org.apache.cayenne.configuration.RuntimeProperties;
4641
import org.apache.cayenne.dba.JdbcAdapter;
@@ -200,7 +195,8 @@ protected void configureExtendedTypes(ExtendedTypeMap map) {
200195
super.configureExtendedTypes(map);
201196

202197
// create specially configured CharType handler
203-
map.registerType(new OracleCharType());
198+
CharType charType = new OracleCharType();
199+
map.registerType(charType);
204200

205201
// create specially configured ByteArrayType handler
206202
map.registerType(new OracleByteArrayType());
@@ -212,6 +208,7 @@ protected void configureExtendedTypes(ExtendedTypeMap map) {
212208
map.registerType(new ShortType(true));
213209
map.registerType(new ByteType(true));
214210
map.registerType(new OracleBooleanType());
211+
map.registerType(new JsonType(charType, true));
215212
}
216213

217214
/**

cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSQLTreeProcessor.java

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,7 @@
2525
import org.apache.cayenne.access.sqlbuilder.ExpressionNodeBuilder;
2626
import org.apache.cayenne.access.sqlbuilder.QuotingAppendable;
2727
import org.apache.cayenne.access.sqlbuilder.SelectBuilder;
28-
import org.apache.cayenne.access.sqlbuilder.sqltree.ColumnNode;
29-
import org.apache.cayenne.access.sqlbuilder.sqltree.EmptyNode;
30-
import org.apache.cayenne.access.sqlbuilder.sqltree.FunctionNode;
31-
import org.apache.cayenne.access.sqlbuilder.sqltree.InNode;
32-
import org.apache.cayenne.access.sqlbuilder.sqltree.LimitOffsetNode;
33-
import org.apache.cayenne.access.sqlbuilder.sqltree.Node;
34-
import org.apache.cayenne.access.sqlbuilder.sqltree.NodeType;
35-
import org.apache.cayenne.access.sqlbuilder.sqltree.OpExpressionNode;
36-
import org.apache.cayenne.access.sqlbuilder.sqltree.TextNode;
37-
import org.apache.cayenne.access.sqlbuilder.sqltree.ValueNode;
38-
import org.apache.cayenne.access.sqlbuilder.sqltree.TrimmingColumnNode;
28+
import org.apache.cayenne.access.sqlbuilder.sqltree.*;
3929
import org.apache.cayenne.access.translator.select.BaseSQLTreeProcessor;
4030
import org.apache.cayenne.util.ArrayUtil;
4131

cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,7 @@
2626
import org.apache.cayenne.access.sqlbuilder.sqltree.SQLTreeProcessor;
2727
import org.apache.cayenne.access.translator.ParameterBinding;
2828
import org.apache.cayenne.access.translator.ejbql.EJBQLTranslatorFactory;
29-
import org.apache.cayenne.access.types.ByteArrayType;
30-
import org.apache.cayenne.access.types.ByteType;
31-
import org.apache.cayenne.access.types.CharType;
32-
import org.apache.cayenne.access.types.ExtendedType;
33-
import org.apache.cayenne.access.types.ExtendedTypeFactory;
34-
import org.apache.cayenne.access.types.ExtendedTypeMap;
35-
import org.apache.cayenne.access.types.ShortType;
36-
import org.apache.cayenne.access.types.ValueObjectTypeRegistry;
29+
import org.apache.cayenne.access.types.*;
3730
import org.apache.cayenne.configuration.Constants;
3831
import org.apache.cayenne.configuration.RuntimeProperties;
3932
import org.apache.cayenne.dba.DefaultQuotingStrategy;
@@ -100,7 +93,8 @@ protected void configureExtendedTypes(ExtendedTypeMap map) {
10093
super.configureExtendedTypes(map);
10194

10295
// create specially configured CharType handler
103-
map.registerType(new CharType(true, false));
96+
CharType charType = new CharType(true, false);
97+
map.registerType(charType);
10498

10599
// create specially configured ByteArrayType handler
106100
map.registerType(new ByteArrayType(true, false));
@@ -109,6 +103,7 @@ protected void configureExtendedTypes(ExtendedTypeMap map) {
109103
// java.lang.Byte
110104
map.registerType(new ShortType(true));
111105
map.registerType(new ByteType(true));
106+
map.registerType(new JsonType(charType, true));
112107
}
113108

114109
/**

0 commit comments

Comments
 (0)