Joda HIbernate - 实体映射中的重复列

时间:2013-08-22 12:45:55

标签: hibernate jodatime

我想要一个复合字段 - lastLogin和一个单独的字段 - timeZone。 我希望能够将复杂对象 - lastLogin(包含timeZone)和timeZone作为独立字段同时插入数据库。

使用以下代码:

@Columns(columns = {@Column(name = "LastLogin_TS"), @Column(name = "LOCAL_TS_TZ", updatable = false, insertable = false)})
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTimeWithZone")
private DateTime lastLogin;

@Column(name = "LOCAL_TS_TZ")
private DateTimeZone timeZone;

我明白了:

Repeated column in mapping for entity: com.myPkg.MyClass column: LOCAL_TS_TZ (should be mapped with insert="false" update="false")

有没有办法以某种方式连接这些列(lastLogin和timeZone)而不是使用@Column注释指定列?

更新 我按照建议将LOCAL_TS_TZ列的可插入和可更新属性设置为false,但我现在遇到了另一个问题:

  

不允许在属性中混合可插入和不可插入的列:lastLogin

1 个答案:

答案 0 :(得分:1)

您应该将insertable = false, updatable = false添加到您的某个字段,因为您已映射到同一列。 像:

@Column(name = "LOCAL_TS_TZ", insertable = false, updatable = false)
private DateTimeZone timeZone;

如果您需要创建自定义类型,则可以this way