自从我上次在CF9中使用Hibernate实现以来已经有一段时间了,现在我正处于一片我无法看到所有树木的树林(可能没有足够的咖啡)。
我简化了示例以使其更具可关性,但问题的本质是相同的(多表组件中的连接映射应该允许可选关系)。
在我的用户组件中,我有以下属性来包含电子邮件地址,该地址存储在单独的表中。
<cfproperty name="sEmail"
type="string"
default=""
table="UserEmail"
joincolumn="fkUserID"
inversejoincolumn="pkUserID" />
不幸的是,这会产生一个INNER JOIN,而我想要一个LEFT JOIN,所以另一个表中的一个条目对于检索/持久化实体不是强制性的。
所以我的问题是:
需要使用哪个属性才能将其从强制(例如,INNER JOIN)转换为可选(例如,LEFT OUTER JOIN)?
Google的搜索结果充斥着与HQL相关的示例,这使得该选项几乎无法使用。
提前感谢您的回复。
稍后添加:
Hibernate本身具有“可选”属性(http://www.scribd.com/doc/2732589/Hibernate-Reference-Documentation#outer_page_74),但似乎没有直接转换为CF的属性。但也许其他人可能也知道一种方式。
答案 0 :(得分:0)
我不相信有一种通过休眠方式的方法。如果有办法,我会感到惊讶。在这种情况下,我通常会在自定义函数(即loadSEmail())中使用自定义查询手动填充变量。