【发布时间】:2021-03-22 01:43:17
【问题描述】:
我正在建模三个实体,但相关注释存在问题。我基本上有一个我打算返回给调用者的类,一个嵌套的项目列表,项目可以包含一个嵌套的端点列表。这是一个顶级的has-一个一对多,然后嵌套的一对多有两个一对多。
我玩过 @JoinColumn 注释,我试图在 OneToMany 的另一侧放置一个 @ManyToOne(但它不喜欢它是一个 Long..)。我只是相当新,不确定如何做到这一点。我认为mappedById 是解决方案,但我不确定。
主要问题:此代码允许我“保存”到数据库,但在检索时,DownDetectorPackage 中的项目列表为空。
CascadeType.ALL 会引发我不完全理解的引用完整性错误。
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Builder
public class DownDetectorPackage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@OneToMany(mappedBy="id",fetch = FetchType.EAGER)
private List<Project> projects;
@Temporal(TemporalType.DATE)
private Date dateJobsLastRan;
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Project{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String projectName;
@OneToMany(mappedBy="id")
private List<Service> externalDependencies;
@OneToMany(mappedBy="id")
private List<Service> endpoints;
}
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Service {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String url;
private Boolean endpointIsUp;
private String serviceName;
}
【问题讨论】:
标签: java hibernate jpa jdbc entity