У моего объекта есть поле, имеющее одно к одному соединение с другой таблицей. Как установить значение по умолчанию для этого поля. Я пытался что-то вроде этогоКак установить значение по умолчанию в поле объекта @Entity
@Column(columnDefinition = "int default 5")
@OneToOne(cascade = CascadeType.ALL)
private Admin admin;
Но я получаю эту ошибку
@Column(s) not allowed on a @OneToOne
Есть ли способ для того чтобы достигнуть этого без изменения таблицы в SQL?
EDIT:
Изменен. Теперь у меня такой код.
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "admin_id", referencedColumnName = "id", nullable = false, columnDefinition = "bigint(20) DEFAULT 5")
private Admin admin;
Я также добавил @DynamicInsert
и @DynamicUpdate
, но он по-прежнему не работает. Я также хочу отметить, что те объекты Admin уже существуют в БД, и я не хочу их снова создавать.
У вас есть '' @JoinColumn (name = "xxx") ''? –
Итак, панель администратора PK по умолчанию равна 5? – HRgiger
, вы должны установить это в свой конструктор, загрузив объект Admin из базы данных, так как 5 не может быть pk в каждой среде. –