Vorgeschichte: Ich bekomme JDBCExceptionReporter data exception: string data, right truncation
Ausnahme bei der Aktualisierung von Entitäten.Wie wird die Größe der String-Spalte mit service.xml oder Service Builder festgelegt?
Ich habe festgestellt, dass dies bedeutet, die Daten sind zu groß für die angegebenen varchar
.
In den service.xml
die Säule wird wie angegeben:
<column name="message" type="String"/>
Ich habe in Liferay Quellcode für ServiceBuilder
dieses Fragment gefunden:
else if (colType.equals("String")) {
Map<String, String> hints = ModelHintsUtil.getHints(
_packagePath + ".model." + entity.getName(), colName);
int maxLength = 75;
if (hints != null) {
maxLength = GetterUtil.getInteger(
hints.get("max-length"), maxLength);
}
if (col.isLocalized()) {
maxLength = 4000;
}
if (maxLength < 4000) {
sb.append("VARCHAR(" + maxLength + ")");
}
else if (maxLength == 4000) {
sb.append("STRING");
}
else if (maxLength > 4000) {
sb.append("TEXT");
}
}
Nun meine Frage ist, wie kann ich die max-length
definieren für meine Spalten?