1

我一直在尝试使用休眠重新创建父/子场景,我以此为例(休眠非常新):

http://www.mkyong.com/hibernate/hibernate-one-to-many-relationship-example-annotation/

我的情况与此类似。我正在开发一个具有一些任务对象的项目,这些任务对象应该是某些任务流对象的一部分。

  • 所以有两个实体任务和任务流。

  • 任务流应该有许多或至少一个任务。

  • 任务表中已经有一些任务,现在我想在任务流表中插入一些条目,以便任务流对象具有任务列表或任务集。

忘了在我原来的问题中提到:

  • 任务可以在许多不同的任务流中

我的任务流看起来像:

class Taskflow{
   int taskflowid;
   String taskflowname;
   List<Task> tasklist;
}

在数据库任务流中有 2 个字段taskflowidtaskflowname.

这就是任务的样子:

class Task{
 //many properties/fields
}

考虑到这个例子,与我在谷歌上搜索的例子相比,Task 与 TaskFlow 之间总是存在某种关系。那有必要吗?我只想让任务流引用任务。我认为这一切都错了吗?

4

2 回答 2

1

如果您不声明关系,它将是简单的成员变量。为了让 hibernate 明白你有一对多的关系,你需要在一些 for 中指定它.hbmannotation

@OneToMany //This for hibernate to understand that you have one to many relationship with Task
List<Task> tasklist;

内部任务

@ManyToOne
Taskflow taskFlow

请记住,默认名称将用于生成列名。请参考这里的教程

于 2012-09-19T11:50:29.693 回答
-1

Hibernate 支持不同基数(一对一、一对多/多对一、多对多)和不同方向性(单向或双向)的关系。

在您的情况下,您有一个多对多的关系,它可以是单向的(如果Task不需要包含TaskFlow它所属的所有 s 的集合),也可以是双向的。

例如,从TaskFlow到的单向关系Task

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

也可以看看:

于 2012-09-19T11:53:30.440 回答