现在,我正在处理一个小型项目,提交非常简单的作业,并且正在将其保存到数据库中。考虑这种情况:
public class Myjob{
int id;
int name;
MyJobConfiguration configuration;
//etc
}
public class MyJobConfiguration{
//bunch of configuration fields
}
如您所见,我将这些配置放在单独的类中,这意味着我想添加/更新/删除与我的工作对象无关的配置。
我的目标是先创建配置,然后在创建作业时为其分配一个现有配置。
因此,一个以上的作业可以使用同一配置对象。
我该怎么做?我已经有了一个如何在数据库中进行操作的想法,我可以将配置的主键连接到myJob类中的外键,但是在休眠状态下似乎有所不同。有没有人举例说明如何做到这一点?
我发现这是因为我以为是http://www.mkyong.com/hibernate/hibernate-one-to-one-relationship-example-annotation/,但似乎没有
最佳答案
您想要一对多的关系,而不是链接文章中所述的一对一关系。
您已经很清楚要如何建立关系,这很好。根据您的发言,我将使MyJobConfiguration看起来像这样:
public class MyJobConfiguration {
@OneToMany(mappedBy = "configuration")
private List<MyJob> jobs;
//bunch of configuration fields
}
和MyJob看起来像这样:
public class Myjob{
int id;
int name;
@ManyToOne
@JoinColumn(name = "configuration_id", nullable = false)
MyJobConfiguration configuration;
//etc
}
我什至可能倾向于给MyJob一个带有MyJobConfiguration实例的构造函数,并使MyJob()默认构造函数的package-private范围限定,以便Hibernate仍然可以使用它,但调用者不能。