Spring boot hibernate sqlite3 отсутствует столбец

Spring boot hibernate sqlite3 отсутствует столбец

Вот таблица базы данных

А вот и спящий объект

@Entity
@Table(name = "Timetable", schema = "main")
public class Timetable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "Id")
private Integer Id;

@Column(name = "TimeEnter")
private Time TimeEnter;

@Column(name = "TimeOut")
private Time TimeOut;

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "weekday_id")
private Weekday weekday;

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "employee_id")
private Employee employee;


public Integer getId() {
    return Id;
}

public Time getTimeEnter() {
    return TimeEnter;
}

public Time getTimeOut() {
    return TimeOut;
}

public Weekday getWeekday() {
    return weekday;
}

public Employee getEmployee() {
    return employee;
}
}

Когда я пытаюсь получить все строки из таблицы, я получаю следующее:

org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (no such column: timetable0_.time_enter)

Что это? Я не могу это понять

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
192
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Извините, я не могу оставлять комментарии. Вы пробовали поставить spring.jpa.hibernate.ddl-auto=update в application.properties

Ответ принят как подходящий

В ошибке имя столбца имеет подчеркивание (time_enter), тогда как в вашей базе данных / объекте (TimeEnter) нет столбца, определенного с подчеркиванием. Причина вставки подчеркивания, вероятно, связана с тем, что вы используете ImprovedNamingStrategy. Он устанавливается в вашем объекте Конфигурация или в вашем файле application.properties. См. Пример здесь ... Вы должны исправить либо столбцы в базе данных, либо стратегию именования в вашем коде, чтобы синхронизировать и то, и другое.

Если вам не нужны подчеркивания, вы можете просто не устанавливать стратегию именования или установить для нее значение DefaultNamingStrategy, которое вы обнаружили ранее.

Спасибо, когда я назвал столбцы с подчеркиванием, он наконец заработал

Semyon Kirekov 10.04.2018 11:07

Другие вопросы по теме