したがって、フィールド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コンソールでレッスンのテーブルを見ると、 "weekday"のような列はありません
また、@Formulaアノテーションなしでstart_dateパラメータを取るセッタを使用して他のオプションを試しましたが、このセッタは決してないと思います列「平日」にはnullが設定されているため、呼び出されます。 ここで私は、代替ソリューションとして使用することを試みたセッターです:
public void setWeekDay(Date start_date) {
Calendar c = Calendar.getInstance();
c.setTime(start_date);
this.weekDay = c.get(Calendar.DAY_OF_WEEK);
}
それは私がここで何かが欠けてることは明らかです私はまだ春のブートを学んでいるので、それはおそらくです...
へ合計 - テーブルレッスンで同じテーブルの別の列から計算された列が必要です。
注意すべき点は、timeパッケージは、java.util.Dateまたはsql.Dateよりもはるかに完全で優れたシステムであり、どちらもさまざまな方法で壊れていることです。それに切り替えるか、JodaTimeを検討する必要があります。 –