【发布时间】:2017-12-08 13:57:50
【问题描述】:
我正在尝试与 spring 数据 jpa 建立双向的一对多关系,但带有 @onetomany 注释的列表总是返回一个元素。
这是我的实体的代码(省略了 setter 和 getter):
@Entity
@Table(name = "sdk_sdk")
public class SDKEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String version;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "sdk")
@OrderBy("order ASC")
private List<SDKFileEntity> fileEntities;
}
还有第二个实体:
@Entity
@Table(name = "sdk_file")
public class SDKFileEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String fileType;
private Integer sdkId;
public SDKFileEntity() {
}
@ManyToOne
@JoinColumn(name = "id", insertable = false, updatable = false)
private SDKEntity sdk;
我正在尝试进行多方映射,其中 sdkId 对应于 SDKEntity 类中的 id。 每当我尝试使用 spring 的存储库从 sdkEntity 获取 sdkfiles 时,列表的大小始终为 1。
例如:
SDKEntity entity=repository.findOne(foo);
List<SDKFileEntity> files=entity.getFileEntities();
这里文件的大小是1,我必须从数据库中删除第一个元素以获得第二个元素。
【问题讨论】:
-
可能只有一个
SDKFileEntity与找到的SDKEntity entity相关联 -
展示如何为 sdkenttity 添加元素
-
在我创建实体之前元素已经在表格中
标签: java hibernate spring-data-jpa