3
我正在使用jpa 2.0,並且我有一個默認情況下具有值的數據庫表中的字段,我將該字段放在我的實體定義中作爲insertable = false,以便在插入時保留默認值時,插入將正確完成,但在重新查詢實體中該字段爲空的對象時,它會正確插入。jpa2強制em來刷新設置爲insertable = false的字段
這是我的代碼:
@Entity
@Table(name="SOME_TABLE")
public class SomeTable implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private SomeTablePK id;
@Column(name="X1")
private String x1;
**@Column(name="X2", insertable=false)**
private Date x2;
... more fields....
... setters and getters...
}
有什麼辦法來迫使實體管理器刷新,我作爲插入=假字段的值?或者我能做些什麼來解決它?
非常感謝。
PS。在我的persistence.xml中提及這一點很重要,並放置以下行來禁用緩存。
<properties>
<property name="javax.persistence.sharedCache.mode" value="NONE"/>
</properties>
感謝您的解釋,具有默認值的字段是一個沒有約束的字段,我在哪裏或如何放置註釋級聯= REFRESH? Thnx再次! – Mariah 2014-10-29 22:07:07
註釋本身不起作用,您將需要調用'entityManager.refresh(YOU_ENTITY)'。級聯註釋僅適用於實體關係船。 – uaiHebert 2014-10-30 15:31:07
再次感謝您的回覆,當我試圖刷新後,堅持實體說「EntityNotFoundException:實體不再存在」,我在一個EJB中使用jpa,我該如何解決這個問題? – Mariah 2014-10-30 16:21:46