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