私は次のようにOracle 10gでビューを作成しています:
CREATE OR REPLACE FORCE VIEW vw_pikap_approle
AS
SELECT approle_id, approle_name, creation_timestamp,1 is_pikap
FROM approle
WHERE is_pikap = 1
/
しかし挿入後
INSERT INTO vw_pikap_approle (approle_id, approle_name, creation_timestamp)
VALUES (hibernate_sequence.NEXTVAL, 'dddd', SYSDATE)
is_pikap は 0 (DB のデフォルト) であるため、ビューでは is_pikap は 1 に固定されます。
Oracleビューへの挿入中に固定値を設定するための解決策はありますか
この必要性は、Java アプリケーションでの Hibernate マッピングを削減するためです。
この問題の休止状態またはビューのソリューションが必要です。
may .hbm.xml にこのマッピングを使用しています。
<property
name="isPikap"
type="int"
column="IS_PIKAP"
not-null="true"
length="1"
formula="1"
/>
そして私のJavaエンティティで:
private int isPikap = 1;
public int getIsPikap() {
return isPikap;
}
public void setIsPikap(int i) {
isPikap=1;
}
ただし、休止状態の挿入で生成されたクエリは次のとおりです。
Hibernate: insert into VW_PIKAP_APPROLE (APPROLE_NAME, APPROLE_ID) values (?, ?)
したがって、デバッガーを使用すると、Java エンティティの isPikap 値は 1 です!