Я хотел сделать то же самое, и поиск в Google фактически привел меня сюда.Мне удалось сделать это с помощью аннотации @Access
.Во-первых, вы аннотируете класс следующим образом:
@Access(AccessType.FIELD)
public class MyClass
{
....
Это обеспечивает доступ к полям для всего, поэтому вам не нужно аннотировать поля по отдельности.Затем вы создаете метод получения и установки для использования JPA.
@Column(name="my_date")
@Temporal(TemporalType.DATE)
@Access(AccessType.PROPERTY)
private Date getMyDateForDB()
{
return myDate.toDate();
}
private void setMyDateForDB(Date myDateFromDB)
{
myDate = new LocalDate(myDateFromDB);
}
* @Access(AccessType.PROPERTY)
указывает JPA сохранять и извлекать с помощью этих методов.
Наконец, вы хотите отметитьваша переменная-член кратковременна, как показано ниже
@Transient
private LocalDate myDate = null;
Это не позволяет JPA пытаться сохраняться и с поля.
Это должно выполнить то, что вы пытаетесь сделать.Это прекрасно сработало для меня.