我一直在尝试用hibernate重新创建父/子场景,我以此为例(对于hibernate来说很新):
http://www.mkyong.com/hibernate/hibernate-one-to-many-relationship-example-annotation/
我的情况与此类似。我正在开发一个项目,它有一些任务对象应该是某个任务流对象的一部分。
因此有两个实体任务和任务流。
任务流应该有许多或至少一个任务。
任务表中已经有一些任务,现在我想在taskflow表中插入一些条目,以便taskflow对象有一个或一组任务。
忘记在我原来的问题中提及:
我的任务流看起来像:
class Taskflow{
int taskflowid;
String taskflowname;
List<Task> tasklist;
}
数据库任务流中的有2个字段taskflowid
和taskflowname
。
这就是Task的样子:
class Task{
//many properties/fields
}
与我用Google搜索的示例相比,考虑这个例子,从Task返回到TaskFlow总会有某种关系。这有必要吗?我只想让taskflow参考任务。我认为这一切都错了吗?
答案 0 :(得分:1)
如果你没有宣布关系,那将是简单的成员变量。为了让hibernate知道你有一对多的关系,你需要在.hbm
,annotation
@OneToMany //This for hibernate to understand that you have one to many relationship with Task
List<Task> tasklist;
内部任务
@ManyToOne
Taskflow taskFlow
请记住,默认名称将用于生成列名称。请参阅here
上的教程答案 1 :(得分:-1)
Hibernate支持不同基数(一对一,一对多/多对一,多对多)和不同方向性(单向或双向)的关系。
在你的情况下,你有一个多对多的关系,可以是单向的(如果Task
不需要包含它所属的所有TaskFlow
的集合),或双向的。
例如,从TaskFlow
到Task
的单向关联:
class Taskflow {
...
@ManyToMany
private List<Task> tasks;
...
}
另见: