我在 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 映射。
我需要一个休眠或视图解决方案来解决这个问题。
我将这个映射用于可能的 .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!