Skip to content

Commit 028b38c

Browse files
Change to more precise SQLTypes according to the size
1 parent 5815628 commit 028b38c

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/main/java/org/javawebstack/orm/SQLType.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,12 @@ public enum SQLType {
1818

1919
// No native char method except for a char stream
2020
CHAR(String.class),
21+
2122
VARCHAR(String.class),
23+
TINYTEXT(String.class),
2224
TEXT(String.class),
25+
MEDIUMTEXT(String.class),
26+
LONGTEXT(String.class),
2327

2428
DATE(Date.class),
2529
TIMESTAMP(Timestamp.class),

src/main/java/org/javawebstack/orm/mapper/DefaultMapper.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,15 @@ public Object mapToJava(Object source, Class<?> type) {
7878

7979
public SQLType getType(Class<?> type, int size) {
8080
if (type.equals(String.class) || type.equals(char[].class))
81-
return size > 65535 || size < 1 ? SQLType.TEXT : SQLType.VARCHAR;
81+
// Upper limit of 4294967295 exceeds the int boundaries
82+
if (size > 16777215)
83+
return SQLType.LONGTEXT;
84+
if (size > 65535)
85+
return SQLType.MEDIUMTEXT;
86+
if (size > 1)
87+
return SQLType.VARCHAR;
88+
if (size == 0)
89+
return SQLType.CHAR;
8290
if (type.equals(UUID.class))
8391
return SQLType.VARCHAR;
8492
if (type.equals(char.class))

0 commit comments

Comments
 (0)