我有父表和子表。父记录已由其他进程插入。我需要添加引用PARENT记录的子记录,例如:
PARENT
===========
PARENT_ID PK
ADDRESS UNIQUE
CHILD
===========
CHILD_ID PK
PARENT_ID FK
ADDRESS UNIQUE
插入CHILD记录时,我必须引用父记录的唯一信息是ADDRESS。我需要使用子级的ADDRESS从父表中获取PARENT_ID来设置子级的FK。
有没有办法在hibernate中执行此操作,以便我不需要通过ADDRESS查询父级以将其与子记录一起插入?或者,我是否继续沿着此路径继续查询PARENT by ADDRESS,然后将PARENT对象传递给子项?
答案 0 :(得分:0)
在我看来,你应该通过地址明确地读取父母,然后将该引用设置为孩子并保存孩子。
否则你将不得不使用某种本地查询,这应该永远是最后的手段,因为你将失去解决方案的可移植性。
您将留下本机查询,因为HQL批量操作(如UPDATE)不支持连接..既不隐式也不显式,您需要在单个查询中执行整个操作。
就我而言,电话是你的。