我有与
类似的实体@Entity
@Table(name = "Template")
public class Template implements java.io.Serializable {
Script script;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "SCRIPTID")
public Script getScript() {
return script;
}
public void setScript(Script script) {
this.script= script;
}
}
其中Script
是另一个实体。
当我想保存Template
时,我会从某些遗留代码中获取Script
的ID,因此我的保存代码为:
Long scriptId = createNewScript(....);
Script script = commonDao.findByPrimaryKey(Script.class, scriptId); //unnecessary reading
template.setScript(script);
commonDao.save(template);
问题是我必须不必阅读Script
,只能将其设置为Template
。有没有办法只设置脚本的Id,但仍然有getter返回Script
。
答案 0 :(得分:1)
是的,有办法。
Hibernate允许你做这样的事情:
template.setScript(new Script());
template.getSCript().setId(scriptId);
commonDao.save(template);