相关疑难解决方法(0)

Hibernate @ColumnTransformer 的 Open JPA 等效项

我正在将 ORM 框架从 Hibernate 切换到 OpenJPA。

在 Hibernate 中,我们可以使用 @ColumnTransformer 注释字段,如下所示。

@Column(name = "EMP_NAME", length = 4000)
@ColumnTransformer(
        read = "pgp_pub_decrypt(emp_name::bytea,dearmor('"+key1+"'))",
        write = "pgp_pub_encrypt(?, dearmor('"+key2+"'))"
)
private String empName;
Run Code Online (Sandbox Code Playgroud)

如何在 OpenJPA 中执行相同操作

java postgresql hibernate jpa openjpa

5
推荐指数
1
解决办法
5255
查看次数

更新视图时如何更新表?

我想在她的视图更新时更新表.我使用postgresql/postgis.

我创建视图.

CREATE VIEW filedata_view
AS SELECT num, id, ST_TRANSFORM(the_geom,900913)
FROM filedata
Run Code Online (Sandbox Code Playgroud)

现在当它更新时我想用这些数据更新TABLE.但是我听说触发器不能在VIEW中使用.那怎么做?

现在我使用这个功能

CREATE OR REPLACE FUNCTION update_table() RETURNS TRIGGER AS ' 
BEGIN 
UPDATE filedata SET id=NEW.id, the_geom=ST_TRANSFORM(NEW.st_transform,70066) where num=NEW.num ;
END;
' LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

没关系.但另一个问题.如何添加触发器来查看我这样做

CREATE TRIGGER up_table AFTER UPDATE ON filedata_view
FOR EACH ROW EXECUTE PROCEDURE update_table ();
Run Code Online (Sandbox Code Playgroud)

但得到错误

ERROR: "filedata_view" is not a table.
Run Code Online (Sandbox Code Playgroud)

UPDATE

AS SELECT num, id, ST_TRANSFORM(the_geom,900913)如果我使用这个我得到列:如何设置列名称num,idst_transform.如何设置第三列的名称the_geom

postgresql postgis

2
推荐指数
1
解决办法
2776
查看次数

标签 统计

postgresql ×2

hibernate ×1

java ×1

jpa ×1

openjpa ×1

postgis ×1