Итак, у меня есть следующая модель, сгенерированная с использованием библиотеки Java Ebean:
package models;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import java.time.LocalDateTime;
@Entity
@Table(name = "Zeit")
public class Zeit extends BaseModel {
@Column
private LocalDateTime start;
@Column
private LocalDateTime ende;
@Column
private int pause;
@ManyToOne(optional = false)
private Benutzer benutzer;
@Column
private LocalDateTime pauseStart;
public Zeit() {
}
public Zeit(LocalDateTime start, LocalDateTime ende, int pause, LocalDateTime pauseStart) {
this.start = start;
this.ende = ende;
this.pause = pause;
this.pauseStart = pauseStart;
}
public LocalDateTime getStart() {
return start;
}
public void setStart(LocalDateTime start) {
this.start = start;
}
public LocalDateTime getEnde() {
return ende;
}
public void setEnde(LocalDateTime ende) {
this.ende = ende;
}
public int getPause() {
return pause;
}
public void setPause(int pause) {
this.pause = pause;
}
public Benutzer getBenutzer() {
return benutzer;
}
public void setBenutzer(Benutzer benutzer) {
this.benutzer = benutzer;
}
public LocalDateTime getPauseStart() {
return pauseStart;
}
public void setPauseStart(LocalDateTime pauseStart) {
this.pauseStart = pauseStart;
}
}
, что приводит к следующим SQL утверждениям:
create table zeit (
id bigint auto_increment not null,
start datetime(6),
ende datetime(6),
pause integer not null,
version bigint not null,
when_created datetime(6) not null,
when_modified datetime(6) not null,
constraint pk_zeit primary key (id)
);
Идея состоит в том, что я хочу записать время открытия и закрытия в БД. Это в основном возможно при использовании
private void btn_anmeldenActionPerformed(java.awt.event.ActionEvent evt) {
try {
Zeit z = new Zeit();
z.setStart(LocalDateTime.now());
z.setBenutzer(benutzer);
z.save();
btn_anmelden.setText(String.valueOf(z.getStart()));
btn_anmelden.setEnabled(false);
} catch (Exception e) {
}
}
Но при получении сущности из базы данных, используя следующее:
private void initState() {
Zeit lastTime = new QZeit().findList().get(0);
System.out.println(lastTime);
}
Я получаю ошибку:
com.mysql.cj.exceptions.DataConversionException: Unsupported conversion from TIMESTAMP to java.lang.Integer
До сих пор я пытался
- изменять разные типы данных в базе данных
- использовать разные типы в моем коде (
java.util.Date
, java.sql.Date
, ...)
Я также использую
mysql-connector-java
: 8.0.19 io.ebean
: 12.1.8