请原谅我的无知的主题,因为我比较新的休眠/原则才能享受它的全部好处,但我遇到了一映我不能找出:

这是什么我的数据库表看起来像:

<bincontents> 
  <id>5873715</id> 
  <title>Video Title</title> 
  <sortorder>0</sortorder> 
  <itemid>23079</itemid> 
  <itemtype>VIDEO</itemtype> 
</bincontents> 
<bincontents> 
  <id>5873716</id> 
  <title>Clip Title</title> 
  <sortorder>1</sortorder> 
  <itemid>131854</itemid> 
  <itemtype>CLIP</itemtype> 
</bincontents>

有没有办法到地图一个一对一的一个where?

因此BinContent对象可以有项类型的视频或片段。这些都键作为串,我不能改变这一不幸。

因此,如果项类型段说,"视频"我想多一个"视频"的对象, 然而,如果项类型场说"剪辑",我想要有一个多对一个剪辑。

帮助!

我甚至不知道如果我想用一个多对一个在这种情况。也许是一个对一个吗?

有帮助吗?

解决方案

就像你有继承候选人这听起来我。如果你有BinContents的抽象基本类型,有一个派生类VideoBinContents的,它包含只是一个视频映射,并只包含一个片段映射ClipBinContents。你的项目类型为你的鉴别。看看这里更多: http://www.hibernate.org /hib_docs/reference/en/html/inheritance.html

其他提示

你能不能有两个视频和剪辑的对象,在你的班级,只是确保两者都是从来没有填充在同一时间?可能需要某些更多的信息,例如你的前类结构。此外,只有将一个视频每桶的对象,反之亦然?

也许这比你在找什么更复杂,但似乎,也许你可以设置你的仓基类和具有视频或影视素材的子类。使用每继承的类层次结构,您可以使用您现有的表结构。

这样做将允许你对于每个子类提供不同的映射。

您可以看看在任何映射。 与“任意”的映射,则可以定义一个多态型的关联。

检查此(段落5.2.4)

反正我不熟悉你的‘域’,但我认为吉姆有一个点为好。也许你应该检查你的数据模型和的DomainModel(如果可能的话),看看是否某种继承是不恰当的位置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top