【发布时间】:2018-12-07 09:01:36
【问题描述】:
问题:绑定到 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);
问题:关于使其发挥作用所遗漏的任何想法。代码还需要什么?
【问题讨论】:
-
不需要 DDL,因为我为什么需要它,但肯定可以使用 fetch 代码,因为您的问题是为什么 fetch 不起作用。
标签: java hibernate jpa jakarta-ee many-to-many