0
我有一个名为Period的类,它具有initialDate
和endDate
以及TemporalType=DATE
注释(日历属性)。我试图坚持它与JPA,但显然休眠是不是管理做正确。JPA持续错误日历日期
这些属性:
@Temporal(TemporalType.DATE)
private Calendar dataInicial; // initialDate
@Temporal(TemporalType.DATE)
private Calendar dataFinal; // endDate
我想这样设置:
Periodo periodo = new Periodo();
periodo.setDataInicial(Calendar.getInstance());
Calendar dataFinal = periodo.getDataInicial();
dataFinal.add(Calendar.MONTH, 6);
periodo.setDataFinal(dataFinal);
em.persist(periodo);
当我SYSOUT所有值它工作完全正常,但在数据库中它是记录为:
+----+------------+-------------+
| id | dataFinal | dataInicial |
+----+------------+-------------+
| 5 | 2017-10-03 | 2017-10-03 |
+----+------------+-------------+
如果我设置Calendar dataFinal = Calendar.getInstance();
它工作正常并持续为我想:
+----+------------+-------------+
| id | dataFinal | dataInicial |
+----+------------+-------------+
| 6 | 2017-10-03 | 2017-04-03 |
+----+------------+-------------+
为什么?我认为这更多的是Java/OOP问题,所以我会坚持使用它。
'java.util.Calendar'是可变的。您已将相同的对象分配给两个字段,然后突变该对象。 –
那么管理不同日期的最佳方法是什么?我有一个有用户输入的initialDate,但endDate总是6个月后。 –
为什么你需要日历?为什么不使用日期? –