Написал самый обычный класс-сущность и столкнулся с проблемой.
Вот класс-сущность:
@Entity(name = "user_block_history")
@EqualsAndHashCode(callSuper = true)
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class UserBlockHistory extends AbstractPersistable<Integer> {
private Integer userId;
private Boolean blocked;
private String cause;
private Date eventDateTime;
private Integer blockReasonId;
private Boolean finOperationExists;
@Column(name = "user_id")
public Integer getUserId() {
return userId;
}
@Column(name = "block")
public Boolean getBlocked() {
return blocked;
}
@Column(name = "cause")
public String getCause() {
return cause;
}
@Column(name = "event_date")
public Date getEventDateTime() {
return eventDateTime;
}
@Column(name = "block_reason_id")
public Integer getBlockReasonId() {
return blockReasonId;
}
@Column(name = "fin_operations_exists")
public Boolean getFinOperationExists() {
return finOperationExists;
}
}
Существует, как вы знаете, два подхода к мапингу полей. Вешать аннотации на поля и вешать их на геттеры. Второй подход считается более правильным, поскольку тогда Hibernate не вынужден ломать приватность полей. Этот подход я пользую уже полтора года. Но тут случилось следующее:
Caused by: org.hibernate.HibernateException: Missing column: blockReasonId in gamebet_2018_12_05.user_block_history
Когда же я вешаю аннотацию на само поле, hibernate его валидирует и спотыкается уже на следующем. То есть, получается, что hibernate не воспринимает аннотацию на геттере, но воспринимает её на поле.
Вариант перевесить аннотации на поля и успокоиться - согласитесь, для слабаков :)
Скрипт создания таблицы, чтобы не было лишних вопросов по именованию полей:
create table user_block_history
(
id int auto_increment
primary key,
user_id int not null
block tinyint(1) not null
cause varchar(255) null
event_date datetime default current_timestamp() not null
block_reason_id int not null default 13
fin_operations_exists tinyint(1) null
)
Интересно, что такой же подход один в один применён в другой сущности в том же пакете, и всё работает.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я разрабатываю приложение на Java с использованием библиотеки kotlogramПример кода:
Что из следующего является лучше практикой в Java 8?
gui приложения при открытии долго грузиться как можно померить время загрузки ? за сколько от отрисовывает layoutxml
Всем привет помогите пожалуйста найти ссылку или запрос который поможет мне вытащить список подпищиков моего вайбер ботаВ документации...