【发布时间】:2017-11-01 07:31:13
【问题描述】:
我有一个具有多个属性的表。 我想要两个类来访问这些(专有)属性。
@Entity
@Table(name = "MY_TABLE")
public class Foo {
...
@Column
@NotNull
private String fooValue;
}
@Entity
@Table(name = "MY_TABLE")
public class Bar {
...
@Column
private String barValue;
...
}
基本上Bar 是表中一些 值的只读视图。 Foo 用于更新其他值,Bar 用于查看其他值(不是使用 Java 应用程序创建的)。
问题在于,当我尝试使用 Spring Data 存储库保存 Foo 时:
public interface FooRepository extends JpaRepository<Foo, Long> {
}
我收到 fooValue 设置为 null 的异常。我在日志中看到一个带有NULL 的插入fooValue。我对其进行了一点调试,当我从项目中完全删除 Bar 时,保存工作正常,当我再次添加它时,Foo 的保存停止工作。
所以对我来说,即使我尝试保存 Foo,Hibernate 也会选择 Bar 类。为什么?
我的堆栈是:Spring Boot 1.5.3、Spring Data、Hibernate 5.x
【问题讨论】:
-
你也可以考虑只使用惰性获取:)
标签: java spring hibernate spring-boot spring-data