From 7f48be5af3e4f107f68e2c59290b16e83ce88341 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Sat, 14 Apr 2012 14:23:41 +0000 Subject: [PATCH] [#1308] Oracle's DataTypeDefinition reports the length of a BLOB / CLOB data type to be 4000 --- .../java/org/jooq/util/oracle/OracleTableDefinition.java | 9 +++++++-- .../multi_schema/tables/pojos/TBook.java | 8 +++----- .../multi_schema/tables/records/TBookRecord.java | 6 +++--- .../oracle/generatedclasses/test/tables/pojos/TBook.java | 8 +++----- .../generatedclasses/test/tables/pojos/T_725LobTest.java | 4 ++-- .../oracle/generatedclasses/test/tables/pojos/VBook.java | 8 +++----- .../test/tables/records/TBookRecord.java | 6 +++--- .../test/tables/records/T_725LobTestRecord.java | 4 ++-- .../test/tables/records/VBookRecord.java | 6 +++--- .../tables/pojos/T_725_LOB_TEST_POJO.java | 4 ++-- .../generatedclasses/tables/pojos/T_BOOK_POJO.java | 6 +++--- .../generatedclasses/tables/pojos/V_BOOK_POJO.java | 6 +++--- 12 files changed, 37 insertions(+), 38 deletions(-) diff --git a/jOOQ-meta/src/main/java/org/jooq/util/oracle/OracleTableDefinition.java b/jOOQ-meta/src/main/java/org/jooq/util/oracle/OracleTableDefinition.java index 0bdfb24f1e..93af852783 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/oracle/OracleTableDefinition.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/oracle/OracleTableDefinition.java @@ -36,6 +36,8 @@ package org.jooq.util.oracle; +import static org.jooq.impl.Factory.decode; +import static org.jooq.impl.Factory.inline; import static org.jooq.util.oracle.sys.Tables.ALL_COL_COMMENTS; import static org.jooq.util.oracle.sys.Tables.ALL_TAB_COLS; @@ -66,7 +68,10 @@ public class OracleTableDefinition extends AbstractTableDefinition { for (Record record : create().select( ALL_TAB_COLS.DATA_TYPE, - ALL_TAB_COLS.DATA_LENGTH, + decode(ALL_TAB_COLS.DATA_TYPE.upper(), + "CLOB", inline(0), + "BLOB", inline(0), + ALL_TAB_COLS.DATA_LENGTH).as("data_length"), ALL_TAB_COLS.DATA_PRECISION, ALL_TAB_COLS.DATA_SCALE, ALL_TAB_COLS.NULLABLE, @@ -87,7 +92,7 @@ public class OracleTableDefinition extends AbstractTableDefinition { getDatabase(), getSchema(), record.getValue(ALL_TAB_COLS.DATA_TYPE), - record.getValueAsInteger(ALL_TAB_COLS.DATA_LENGTH, 0), + record.getValueAsInteger("data_length", 0), record.getValueAsInteger(ALL_TAB_COLS.DATA_PRECISION, 0), record.getValueAsInteger(ALL_TAB_COLS.DATA_SCALE, 0)); diff --git a/jOOQ-test/src/org/jooq/test/oracle/generatedclasses/multi_schema/tables/pojos/TBook.java b/jOOQ-test/src/org/jooq/test/oracle/generatedclasses/multi_schema/tables/pojos/TBook.java index 03f6844f23..b82729fa22 100644 --- a/jOOQ-test/src/org/jooq/test/oracle/generatedclasses/multi_schema/tables/pojos/TBook.java +++ b/jOOQ-test/src/org/jooq/test/oracle/generatedclasses/multi_schema/tables/pojos/TBook.java @@ -10,7 +10,7 @@ package org.jooq.test.oracle.generatedclasses.multi_schema.tables.pojos; @javax.persistence.Table(name = "T_BOOK", schema = "MULTI_SCHEMA") public class TBook implements java.io.Serializable { - private static final long serialVersionUID = 986192358; + private static final long serialVersionUID = 1604287607; @javax.validation.constraints.NotNull @@ -30,8 +30,6 @@ public class TBook implements java.io.Serializable { @javax.validation.constraints.NotNull private org.jooq.test.oracle.generatedclasses.test.enums.TLanguage languageId; - - @javax.validation.constraints.Size(max = 4000) private java.lang.String contentText; private byte[] contentPdf; @@ -99,7 +97,7 @@ public class TBook implements java.io.Serializable { this.languageId = languageId; } - @javax.persistence.Column(name = "CONTENT_TEXT", length = 4000) + @javax.persistence.Column(name = "CONTENT_TEXT") public java.lang.String getContentText() { return this.contentText; } @@ -108,7 +106,7 @@ public class TBook implements java.io.Serializable { this.contentText = contentText; } - @javax.persistence.Column(name = "CONTENT_PDF", length = 4000) + @javax.persistence.Column(name = "CONTENT_PDF") public byte[] getContentPdf() { return this.contentPdf; } diff --git a/jOOQ-test/src/org/jooq/test/oracle/generatedclasses/multi_schema/tables/records/TBookRecord.java b/jOOQ-test/src/org/jooq/test/oracle/generatedclasses/multi_schema/tables/records/TBookRecord.java index 3b42e3006d..538a2a94be 100644 --- a/jOOQ-test/src/org/jooq/test/oracle/generatedclasses/multi_schema/tables/records/TBookRecord.java +++ b/jOOQ-test/src/org/jooq/test/oracle/generatedclasses/multi_schema/tables/records/TBookRecord.java @@ -10,7 +10,7 @@ package org.jooq.test.oracle.generatedclasses.multi_schema.tables.records; @javax.persistence.Table(name = "T_BOOK", schema = "MULTI_SCHEMA") public class TBookRecord extends org.jooq.impl.UpdatableRecordImpl { - private static final long serialVersionUID = 679491786; + private static final long serialVersionUID = -785867012; /** * An uncommented item @@ -200,7 +200,7 @@ public class TBookRecord extends org.jooq.impl.UpdatableRecordImpl { - private static final long serialVersionUID = 777547931; + private static final long serialVersionUID = -1497888887; /** * The book ID @@ -214,7 +214,7 @@ public class TBookRecord extends org.jooq.impl.UpdatableRecordImpl { - private static final long serialVersionUID = -1886427352; + private static final long serialVersionUID = 1892541915; /** * An uncommented item @@ -42,7 +42,7 @@ public class T_725LobTestRecord extends org.jooq.impl.UpdatableRecordImpl { - private static final long serialVersionUID = 1646329168; + private static final long serialVersionUID = -430542554; /** * An uncommented item @@ -127,7 +127,7 @@ public class VBookRecord extends org.jooq.impl.TableRecordImpl