spring - 由于@JoinColumn(nullable = false),Spring/JPA 两次单向不起作用
问题描述
我对单向映射有疑问,需要帮助。
我有 2 个具有相同单向映射的实体。
第一个:
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "massnahme_id", nullable = false)
private Set<VerortungDAO> verortungen = new LinkedHashSet<>();
第二个:
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "massnahmen_verbund_id", nullable = false)
private Set<VerortungDAO> verortungen = new LinkedHashSet<>();
如果我尝试保存一个实体,hibernate 会因为第二个实体定义(非空)而引发异常。
org.hibernate.PropertyValueException:非空属性引用空值或瞬态值
如果我将 JoinColumn 更改为 nullable = true,则单向映射不起作用并且列表不会保存在 DB 中。我该怎么做才能让它发挥作用?
解决方案
使关联双向并映射到中的一对一关联VerortungDAO
,或者如果您不希望这样做,至少映射 FK 列。如果您将其映射为双向,请使用@OneToMany(mappedBy = "...")
. 无论哪种方式,您都必须初始化VerortungDAO
对象上的两对一关联或 FK 列。
PS:实体不是 DAO(数据访问对象),因此xxDAO
实体的命名相当混乱。
推荐阅读
- django - 如何正确序列化其模型具有外键且也采用 ImageField 的对象?
- java - 如何获取 ScrollView 的每个 EditText 语音结果
- javascript - HTML Flows Strange(内容出现在错误的位置?)
- bash - 调试分隔和回显学生或学生分数的 .bash 文件时遇到问题
- hazelcast - Hazelcast Entry Processor:当对象影响其他地图中的对象时
- cmake - 未知的 cmake 命令“append_list_if”
- pyspark - 在运行 K 时花费大量时间意味着 Python Spark
- google-bigquery - bigquery 超时限制。需要帮助提高查询效率
- excel - 尝试在起点和终点之间复制/粘贴和转置多个范围
- python - 未知字符串格式 - 解析和转换 python 日期时间字符串