【发布时间】:2015-01-24 02:21:26
【问题描述】:
我有这两个对象:Project 和 History
这是这些类的最少代码
项目
@Entity(name = "projects")
public class Project {
@Id
private String name;
@OneToMany(MappedBy = "project")
private List<History> histories;
}
历史
@Entity(name = "histories")
public class History {
@Id
private Integer id;
@ManyToOne
@JoinColum(name = "project_name")
private Project project;
}
我在创建 EntityManager 和创建表方面没有任何问题。一切都在这里,右列轻轻等待插入数据。
但是,我不确定这是否是 ORM 的正确行为。
基本上,如果它看起来像这样,那将是理想的:
- 创建历史记录 + 设置历史记录
- 创建 Project + 设置 Project + 在 Project 的列表 history 中添加 History时间>
- 使用其 DAO 在数据库中插入 项目
当我尝试执行这样的代码时,只有 projects 表中有数据,histories 表是空的,这迫使我编写代码如下:
- 创建历史记录 + 设置历史记录
- 创建 Project + 设置 Project + 在 Project 的列表 history 中添加 History时间>
- 使用其 DAO 在数据库中插入历史
- 使用其 DAO 在数据库中插入 项目
好的,这只是额外的一行代码,但如果我需要获取数据或向一个 Project 添加更多历史记录怎么办? 如果是这样,我需要加载项目和所有相关历史记录并将物理历史记录添加到 Project 对象中......这样的代码很容易编写起来很麻烦和麻烦。
无论如何,这是任何 ORM 的正常行为还是我的 ORM 在愚弄我?
注意:我正在使用带有 SQLite 驱动程序的 ORMLite。
【问题讨论】:
标签: java sqlite orm one-to-many many-to-one