反面:
@Entity
@Table(name = "servers")
@org.hibernate.annotations.Entity(dynamicUpdate = true)
public class Server {
private Plan plan;
@OneToOne(mappedBy="server")
public Plan getPlan() { return plan; }
}
业主方:
@Entity
@Table(name = "plans")
@org.hibernate.annotations.Entity(dynamicUpdate = true)
public class Plan {
Server server;
@OneToOne(optional=false)
@JoinColumn(unique=true, nullable=false)
@Cascade(CascadeType.SAVE_UPDATE)
public Server getServer() { return server; }
}
现在我在
@Repository public class ServerDao extends org.springframework.orm.hibernate3.support.HibernateDaoSupport {}
当我尝试:
getHibernateTemplate().get(Server.class, 1);
“计划”属性正确加载。但是,当我试图找到多个服务器时:
getHibernateTemplate().find("from Server");
返回服务器列表,每个项目的“plan”属性设置为null。我做错了什么?
弹簧ORM:3.2.2.RELEASE Hivernate 3.5.6-决赛
答案 0 :(得分:0)
我想到了两个解决方案:
一个。尝试在optional
方将false
设置为Server
:
@OneToOne(optional = false, mappedBy="server")
public Plan getPlan() { return plan; }
湾如果您可以更改架构 - 将您的加入列移至Server
类。
你看过生成的SELECT查询吗?