Как установить размер строкового столбца с помощью service.xml или Service Builder?

Pre -история :Я получаю исключение JDBCExceptionReporter data exception: string data, right truncationпри обновлении сущностей.

Я обнаружил, что это означает, что данные слишком велики для указанного varchar.

В service.xmlстолбец указан как:

<column name="message" type="String"/>

Я нашел в исходниках Liferay для ServiceBuilderэтот фрагмент:

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");
    }
}

Теперь мой вопрос: как я могу определить max-lengthдля своих столбцов?

9
задан Prakash K 17 August 2012 в 06:40
поделиться