zugeordnet Nun, meins ist eine dumme Frage.JSR-310 Jahr zu TINYBLOB in MySQL
Mit Hibernate 5.1 (5.2 das gleiche) meine Spalte wird tinyblob
anstatt der intuitiven int
Spalte zugeordnet, die man erwarten würde. Andere JSR-310-Spalten werden erfolgreich zugeordnet.
z.
@Column(name = "ANNO_PROTOCOLLO", nullable = true)
protected Year annoProtocollo;
@Column(name = "CREATED", nullable = false, updatable = false, insertable = true)
protected LocalDateTime created = LocalDateTime.now();
Die erste Spalte wird tinyblob
abgebildet, aber der zweite ist korrekt zu datetime
abgebildet, die der SQL-Standard für diese Werte sind.
Wieder ist meine Frage albern, weil nichts mich daran hindert, diese Year-Spalte als int zu deklarieren, aber ich wollte den Grund dahinter verstehen und wenn es einen Weg gibt, weniger als 3 Zeilen Code zu map Jahr bis Int. Da ich auf mehreren Datenbanken arbeiten müssen, kann ich nicht @Column(columnDefinition)
akzeptieren und wenn das die einzige Lösung ist, werde ich nur Integer verwenden und damit leben, wie ich schon
JDBC definiert die Datentypzuordnung für 'LocalDate',' LocalDateTime', 'LocalTime',' OffsetDateTime' und 'OffsetTime'; Der Typ 'Year' ist kein solcher Typ (es gibt keinen äquivalenten Typ im SQL-Standard). –
Dank @MarkRotteveel, Ihr Kommentar zeigt deutlich die Situation auf. Nun, würden Sie aus Sicht der Spekulation ** persönlich zustimmen, dass "int" eine korrekte Zuordnung sein könnte? Nur zu Diskussionszwecken ändere ich meine Spalte in Integer asap –
@MarkRotteveel Ist das in Java 9? Weil JDBC 4.2 (Java 8) keine Mappings für die neuen 'java.time' Klassen definiert, soweit ich das finde. – Andreas