mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-11-14 06:45:21 +00:00
#2598 - H2 + @Lob String fails with - Error[Value too long for column "CHARACTER VARYING": "... (1048577)" [22001-210]]
This commit is contained in:
1 parent
ff1b01e5ca
commit
92e85e32a2
2 files changed
+26
-1
No files matched your search
@@ -1,5 +1,6 @@
|
|||||||
package io.ebeaninternal.server.type;
|
package io.ebeaninternal.server.type;
|
||||||
|
|
||||||
|
import io.ebean.core.type.DataBinder;
|
||||||
import io.ebean.core.type.DataReader;
|
import io.ebean.core.type.DataReader;
|
||||||
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
@@ -18,6 +19,15 @@ class ScalarTypeClob extends ScalarTypeStringBase {
|
|||||||
super(true, Types.CLOB);
|
super(true, Types.CLOB);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void bind(DataBinder binder, String value) throws SQLException {
|
||||||
|
if (value == null) {
|
||||||
|
binder.setNull(Types.VARCHAR);
|
||||||
|
} else {
|
||||||
|
binder.setClob(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String read(DataReader reader) throws SQLException {
|
public String read(DataReader reader) throws SQLException {
|
||||||
return reader.getStringFromStream();
|
return reader.getStringFromStream();
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import io.ebean.test.LoggedSql;
|
|||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.tests.model.basic.EBasicClobNoVer;
|
import org.tests.model.basic.EBasicClobNoVer;
|
||||||
|
|
||||||
import javax.xml.transform.sax.SAXSource;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
@@ -83,4 +83,19 @@ class TestBasicClobNoVer extends BaseTestCase {
|
|||||||
assertThat(sql.get(0)).contains(" and t0.deleted =");
|
assertThat(sql.get(0)).contains(" and t0.deleted =");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void largeValueInsert() {
|
||||||
|
EBasicClobNoVer bean = new EBasicClobNoVer();
|
||||||
|
bean.setDescription(largeContent());
|
||||||
|
DB.save(bean);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String largeContent() {
|
||||||
|
Random random = new Random();
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for (int i = 0; i < 1048577; i++) {
|
||||||
|
sb.append((char) (random.nextInt(26) + 'a'));
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user