0

休止状態で次のSQLを実行したい:

SELECT emp.*, utilsPkg.getEmployeeDisplayName(emp.id) FROM employee emp;

これまでのところとても良いです...問題は-エンティティにフェッチする必要があるため-従業員を更新できることです。もちろん、pl\sql関数は更新可能でも、実際のテーブルの一部でもありません...

計算されて更新できないフィールドを使用して、休止状態でそのようなエンティティを生成するにはどうすればよいですか?

どうもありがとう!

4

3 に答える 3

1

Hibernate のドキュメント@Formulaで説明されているように、アノテーションを使用します。

場合によっては、JVM ではなくデータベースに何らかの計算を実行させたい場合があります。また、ある種の仮想列を作成することもできます。プロパティを列にマッピングする代わりに、SQL フラグメント (式) を使用できます。この種類のプロパティは読み取り専用です (その値は数式フラグメントによって計算されます)。

于 2012-06-04T21:36:10.117 に答える
0

@Transientそのプロパティの getter メソッドで注釈を使用します。

于 2012-06-04T21:19:44.040 に答える
0

あなたの質問を完全に理解しているかどうかはわかりませんが、いつでもHibernate エンティティ ライフサイクル コールバックを使用するか、クエリで直接提供することができます。

select new MyEntity(o.column1, o.column2, utilsPkg.getEmployeeDisplayName(o.id)) from MyEntity as o where o.id = 5

もちろん、適切なコンストラクターを実装する必要があります。

于 2012-06-04T21:38:34.037 に答える