Allgemeines Falldatenblatt (freeform01) zu klein für mehrere Felder


Startseite Foren Hilfe bei Problemen Allgemeines Falldatenblatt (freeform01) zu klein für mehrere Felder

Verschlagwortet: 

4 Beiträge anzeigen - 1 bis 4 (von insgesamt 4)
  • Autor
    Beiträge
  • #7367
    Albert
    Participant

    Hallo zusammen,
    ich habe ein Problem mit dem Allgemeinen Falldatenblatt (freeform01) in j-lawyer und hoffe auf eure Hilfe.
    Problem:
    Sobald ich versuche, mehr als 2-3 Felder (z.B. Checkboxen) zum allgemeinen Falldatenblatt hinzuzufügen, erhalte ich beim Speichern die Fehlermeldung:
    failed to read response
    Fehler im Server-Log:
    com.mysql.cj.jdbc.exceptions.MysqlDataTruncation:
    Data too long for column ’settingValue‘ at row 1
    Technische Analyse:
    Die Falldatenblatt-Definition wird in der Tabelle server_settings gespeichert:

    Spalte: settingValue VARCHAR(255)
    Das JSON mit nur 2-3 Feldern belegt bereits ~200 Bytes
    Bei weiteren Feldern wird die 255-Byte-Grenze überschritten

    Vergleich:
    Die vorgefertigten Falldatenblätter (z.B. Verkehrsunfalldaten) nutzen form_types_artefacts mit MEDIUMBLOB und haben daher kein Größenlimit. Diese können problemlos 50+ Felder haben.
    Bereits probiert:

    Spalte auf VARCHAR(255) vergrößert → funktioniert, aber immer noch zu klein für viele Felder
    Versuch MEDIUMTEXT zu nutzen → Hibernate Schema-Validation schlägt fehl:

    Schema-validation: wrong column type encountered […]
    found [mediumtext], but expecting [varchar(255)]
    Meine Frage:
    Wie kann ich das allgemeine Falldatenblatt für 20+ Felder konfigurieren? Gibt es:

    Eine offizielle Methode die Größenbeschränkung zu umgehen?
    Eine Konfigurationsmöglichkeit die ich übersehen habe?
    Sollte ich stattdessen ein eigenes Plugin-Falldatenblatt wie verkehr01 erstellen?

    System:

    j-lawyer Server auf Linux (Wildfly)
    MariaDB 10.11.14

    #7368
    j-lawyer.org
    Keymaster

    Hallo Albert,

    dieses FDB ist erst wenige Tage alt und wird erst mit dem kommenden Wartungsrelease für größere Datenmengen genutzt werden können. Wenn es dringend ist, muss selbst Hand angelegt werden:

    ALTER TABLE server_settings MODIFY settingValue varchar(2499) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;

    #7369
    Albert
    Participant

    Hallo,

    vielen Dank für die schnelle Hilfe!
    Die Lösung hat perfekt funktioniert – der Server startet jetzt ohne Fehler und das Speichern des Falldatenblatts mit mehreren Feldern klappt einwandfrei.
    Eine kurze Nachfrage: Gibt es beim kommenden Wartungsrelease etwas zu beachten? Wird die Spalte automatisch migriert oder bleibt meine manuelle Änderung bestehen?
    Nochmals herzlichen Dank!
    Viele Grüße
    Albert

    #7370
    j-lawyer.org
    Keymaster

    Hallo Albert,

    ich hatte für Dich hier eine Variante mit Feldlänger 2499 gepostet, um einen Konflikt mit der Migration im Wartungsrelease zu verhindern – dort wird dann auf 2500 gesetzt werden:

    > https://github.com/jlawyerorg/j-lawyer-org/blob/master/j-lawyer-server-entities/src/java/db/migration/V3_5_0_1__ModifyServerSettings.sql

    Es ist also nichts zu beachten – in Deiner Datenbank wird das Feld dann einfach nochmals um 1 Zeichen vergrößert.

4 Beiträge anzeigen - 1 bis 4 (von insgesamt 4)
  • Du musst angemeldet sein, um zu diesem Thema eine Antwort verfassen zu können.