父子关系冬眠

时间:2012-09-19 11:38:55

标签: java hibernate

我一直在尝试用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个字段taskflowidtaskflowname

这就是Task的样子:

class Task{
 //many properties/fields
}

与我用Google搜索的示例相比,考虑这个例子,从Task返回到TaskFlow总会有某种关系。这有必要吗?我只想让taskflow参考任务。我认为这一切都错了吗?

2 个答案:

答案 0 :(得分:1)

如果你没有宣布关系,那将是简单的成员变量。为了让hibernate知道你有一对多的关系,你需要在.hbmannotation

的某些关系中指定它。
@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的集合),或双向的。

例如,从TaskFlowTask的单向关联:

class Taskflow {
    ...
    @ManyToMany
    private List<Task> tasks;
    ...
}

另见: