所以,我有一個實體,它具有字段start_date(java.util.Date是類型)。春季開機 - 計算字段
我想擁有另一個字段,它會自動填充對應於開始日期的星期幾(如星期日的數字1,星期一的2,等等)的整數。
這裏是我的實體的片段:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Temporal(TemporalType.DATE)
private Date start_date;
我已經嘗試添加下列方式計算字段:
@Column(name = "weekday")
@Formula("(select dayofweek(l.start_date) from Lesson l where l.id = id)")
private Integer weekDay;
然而,在課程表中H2控制檯看時,有沒有這樣的列「工作日」
我也嘗試過其他選項 - 沒有@Formula註釋和setter採取start_date參數,但我想這個setter是從來沒有稱爲,因爲「weekday」列填充了null。 這裏的二傳手我已經試過作爲一種替代解決方案中使用:
public void setWeekDay(Date start_date) {
Calendar c = Calendar.getInstance();
c.setTime(start_date);
this.weekDay = c.get(Calendar.DAY_OF_WEEK);
}
很明顯,我在這裏失去了一些東西,這可能是因爲我還在學習春天開機...
要總結 - 我想在表Lesson中有一列,它是從同一個表的另一列計算出來的。
另一件需要注意的事情是,time package比java.util.Date或sql.Date更加完整和更好用,它們都以各種方式被破壞。你應該考慮切換到它或JodaTime。 –