我有一個場景,像我在哪裏有一個實體與變量(說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