我有一个场景,像我在哪里有一个实体与变量(说x)指向数据库中的虚拟列。我使用这个变量x只是将一些数据投影到用户界面上,或者在Iam更新或创建实体对象时不希望插入或更新这些数据。春季与休眠JPA使用虚拟数据库列不工作
对于这种要实现我已经引入可插入和可更新为假如下所示
@Column(name = "VIRTUAL_COLUMN_NAME_IN_DB", length = 4000, updatable = false, insertable = false)
private String x;
我已经介绍相关getter和setter为好。
随着我公司推出的注解,我预计变量x将不包括插入或更新opeartions的一部分
但是,它不是这样的,我看到它即将在插入和更新操作,这inturn害我低于
org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access: SQLException for SQL [n/a]; SQL state [99999]; error code [54017]; ORA-54017: UPDATE operation disallowed on virtual columns
; nested exception is org.hibernate.exception.GenericJDBCException: ORA-54017: UPDATE operation disallowed on virtual columns
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:651)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:105)
一个DB错误,请让我知道如何在基于Spring的应用程序,你是否尝试过@Transient批注使用虚拟列与Hibernate JPA
设法有与@Generated(GenerationTime.ALWAYS)注释列。但是,这个 – Shiv 2013-04-05 06:15:28
没有运气,我不能重现这一点。我尝试了H2计算列,但updatable = false和insertable = false计算列在更新和插入中从不提及。 – 2013-04-05 18:06:44
我正在使用Oracle DB。你能让我知道你正在使用的Hibernate JPA的版本吗? – Shiv 2013-04-06 00:20:27