java - JPA 多对多列表为空
问题描述
问题:绑定到 Postgres 表后,我的实体列表为空。
研究:JavaEE7、Java8、JPA2.1。此实体的 OneToMany 和其他实体中类似的 ManyToMany 绑定字段可在同一数据库中正常工作。
表 DDL:
create table clean.report_type_to_indicator_type(
indicator_type_id integer not null
constraint report_type_to_indicator_type_indicator_type_id_fk
references indicator_type,
report_type_id integer not null
constraint report_type_to_indicator_type_report_type_id_fk
references report_type,
constraint report_type_to_indicator_type_pk
primary key (indicator_type_id, report_type_id)
);
create unique index
report_type_to_indicator_type_indicator_type_id_report_type_id_
on clean.report_type_to_indicator_type (indicator_type_id,
report_type_id);
实体:
@Entity
@Table(schema = "clean")
@JsonIgnoreProperties(ignoreUnknown = true)
public class IndicatorType {
// Fields:
@Id @GeneratedValue private int id;
private String name;
@ManyToOne private Unit unit;
@ManyToOne private PeriodType periodType;
@ManyToOne private RegionType regionType;
@ManyToMany
@JoinTable(
schema = "clean",
name = "report_type_to_indicator_type",
joinColumns = @JoinColumn(name = "indicator_type_id"),
inverseJoinColumns = @JoinColumn(name = "report_type_id"))
private List<RegionType> reportTypes;
// Getters and setters:
}
我在 REST 服务中创建实体,例如:
IndicatorType indicatorType = comparisonDao.getIndicatorTypeById(1);
问题:关于使其发挥作用所遗漏的任何想法。代码还需要什么?
解决方案
缺少级联。下面是示例:
@ManyToMany(
cascade = {CascadeType.ALL},
fetch = FetchType.LAZY
)
@JoinTable(
name = "report_type_to_indicator_type",
joinColumns = {@JoinColumn(name = "indicator_type_id")},
inverseJoinColumns = {@JoinColumn(name = "report_type_id")}
)
private List<RegionType> reportTypes;
推荐阅读
- javascript - CSS 动画 - classList 仅更改第一个实例
- python - 我想在 pygame 的按键上对图像进行 blit
- user-interface - 用于移动应用程序的 Ionic React - 使用超出屏幕的元素进行水平滚动
- python - Python Flask:迁移到生产环境时获取 URL
- c# - Windows 窗体:具有不同数据源的 DataGridView 中的 ComboBoxColumn
- scala - 用分区内的数据训练分类器
- c# - 将列表 <> 保存在 .txt 文件中
- python - 如何删除 discord.py 中具有其 ID 的频道?
- google-app-engine - Google Appengine:来自 App Engine 的我的 SQL 通信链接失败
- android - 双向绑定 - 数据绑定 Android