У меня есть небольшая проблема, чтобы найти подходящий обходной путь для этой ошибки.
Мне нужна и дата рождения пользователя, и следующий день рождения в качестве постоянного поля в классе сущностей. Упомянутый обходной путь использует @ColumnTransfer
, который также нуждается в аннотации @Column
. Но нет столбца «nextBirthday» или чего-то подобного, и ссылка на birthdate
не будет работать (столбец определен неоднозначно).
Мой оригинальный User
класс:
@Entity
public class User {
@ID
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "USERS_ID_GENERATOR")
private long id;
@Column
@Temporal(TemporalType.DATE)
private Date birthdate;
@Formula("add_months(birthDate, floor(months_between(sysdate - 1, birthDate) /12 + 1) * 12)")
private Date nextBirthday;
// More Fields
}
Моя первая попытка использовать @ColumnTransformer
:
@Entity
public class User {
@ID
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "USERS_ID_GENERATOR")
private long id;
@Column
@Temporal(TemporalType.DATE)
private Date birthdate;
@Column("birthdate")
@ColumnTransformer(read = "add_months(birthDate, floor(months_between(sysdate - 1, birthDate) /12 + 1) * 12)")
private Date nextBirthday;
// More Fields
}
Это не работает, потому что есть два поля, относящиеся к дате рождения.
Кто-нибудь знает обходной путь без ссылки на столбец?