JPA配置實體時 insertable = false, updatable = false
阿新 • • 發佈:2017-08-03
sys 映射 tid uid ner div targe als replace
當使用JPA配置實體時,如果有兩個屬性(一個是一般屬性,一個是多對一的屬性)映射到數據庫的同一列,就會報錯。
這時,[email protected] = false, updatable = false就能解決。
例如:
/** * 用戶類 */ @Entity @Table(name = "TBL_SYS_USER") public class SysUser{ @Id @GeneratedValue(generator = "system-uuid") @GenericGenerator(name = "system-uuid", strategy = "uuid") @Column(name= "USER_ID", unique = true, length = 40) @CsvColumn(imported=false) private String id; //用戶ID @Column(name = "USER_CODE", nullable = false, length = 40) private String userCode; //用戶賬號 @CsvColumn(desc="用戶姓名", required= true ) @Column(name = "USER_NAME", length = 60)private String userName; //用戶姓名 @Column(name = "DEPT_ID", length = 40) private String deptId; //部門ID(IS_ORG=0的) @ManyToOne @JoinColumn(name = "DEPT_ID", insertable = false, updatable = false, nullable=true) private SysOrg dept; //部門對象 }
我們可以看到,deptId和dept都映射到數據庫裏面的DEPT_ID字段,但是加上了insertable = false, updatable = false後,在保存數據時,dept不會被保存到數據庫。
JPA配置實體時 insertable = false, updatable = false