hibernateがデータベースに保存するエンティティ属性が欲しいのですが、オブジェクトを再構築するときに設定しようとはしません。
私にはこのようなクラスがあります。
@Entity
class Quote {
private int itemCost;
private int quantity;
public Quote(int itemCost, int quantity) {
this.itemCost = itemCost;
this.quantity = quantity;
}
public void setItemCost(int itemCost) {
this.itemCost = itemCost;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
public int getItemCost() {
return this.itemCost;
}
public int getQuantity() {
return this.quantity;
}
// This attribute "totalCost" has a getter only, no setter.
// It causes a runtime error (see below).
public int getTotalCost() {
return this.itemCost * this.quantity;
}
}
次のデータベーステーブルが欲しいです。
quotes
itemCost | quantity | totalCost
------------------------------------
100 | 7 | 700
10 | 2 | 20
6 | 3 | 18
ご覧のとおり、フィールド「totalCost」はから取得できますgetTotalCost()
が、setTotalCost()
メソッドは必要ありません。私のアプリケーションでは意味がありません。
再度ではないデータベースにフィールドを書き込む必要がある理由set
は、この値をデータベースを共有する他のアプリケーション(つまり、グラフィカルインターフェイス)で使用できるようにするためです。
明らかに、実行時に現在このエラーが発生します。
org.hibernate.PropertyNotFoundException: Could not find a setter for property totalCost in class Quote
私は空のセッターを持つことができましたが、これは汚れています。私の実際のコードには、このような約13の「読み取り専用」属性があり、13の空白のセッターがコードを乱雑にしたくありません。
これに対するエレガントな解決策はありますか?