假设我有对应于Posts
和Users
的域对象。不过,我有相应的数据库表,其中包含与“帖子”和“用户”有关的信息。Java Spring-Hibernate映射问题?
目前我已经在Hibernate中正确设置了映射,以便我可以从“posts”表中取出信息并将其保存为Post
对象。然而,我然后在我的Posts
域对象中添加了对User
对象的引用(以便每个帖子可以有对应的User
对象)。
在我的数据库结构中,“posts”表有一个user_id
列,它是“users”表中的外键。
我的问题是:在我的DAO查询“上岗”表时,我必须参加的“用户”表,然后返回的用户数据在某种程度上铸造成User
对象?或者我可以简单地离开我的查询(即只是查询“posts”表),并以某种方式添加休眠映射,以便Posts
表中的User
属性被填充? (我想我想知道如果我正确地设置了映射,Hibernate是否可以自动生成连接 - 例子也很棒!)
谢谢,我希望我已经清楚了。
更新:我想弄清楚,这里有一些代码段:
我的帖子对象:
public class Posts {
private String title;
...
private User user;
//getters and setters here
}
我的帖子表列:
post_id (primary key)
title
...
user_id (foreign key into User table)
我的映射(不考虑考虑到用户属性)目前看起来像这样:
<class name="com...Post" table="post">
<id name="pId" column="post_id" />
<property name="title" column="title" type="java.lang.String" />
...
<!-- Need to add mapping here to join with user table?? -->
</class>
所以基本上,我的DAO目前取得一个没有private User user
属性的Post对象(因为我刚刚添加了这个)。我的问题是如何在Post对象中填充该属性(,以便获取的Post对象也包含用户对象)?
很抱歉,如果当前的职位已经回答了这个......他们只是稍微有一些混乱给我..
延迟读取是默认行为 - 即使在您链接的文章中也是如此。 –
你说得对,我的不好。 – juniorbl