Hibernate 持久化问题

A_ALERT 2011-06-01 05:30:08

直接入题
我使用 hibernate 保存一个 node , node 关联 build
代码片段

@Entity
@Table(name = "tb_node" , uniqueConstraints = {@UniqueConstraint(columnNames = {"node_name"})})
public class Node implements Serializable {

private static final long serialVersionUID = 5739459432161066845L;

private Long id;
private Building build;
。。。。

@ManyToOne(fetch = FetchType.LAZY,cascade={CascadeType.MERGE,CascadeType.REFRESH})
@JoinColumn(name = "build_id", nullable = false)
public Building getBuild() {
return build;
}

public void setBuild(Building build) {
this.build = build;
}


当我添加Node之后


dao.save(node);
List<RuleIndex> indexlst = getNodeParam(node);
if(indexlst != null){
addDefaultRule(node , indexlst);
}
node.setBuild(b_dao.get(node.getBuild().getId()));
dao.createNodeDataTable(node);

build 信息只有 id
我必须去手动载入 build 信息, 很是奇怪 延迟加载在这里没有用 既然我保存了Node 这个node也是持久态了 如何直接使用build 就是不行 , 不过我想 肯定是我有知识点还不知道 我想如何在这里使用延迟加载

我使用了opensessioninviewfilter 这个就不说了 waiting for you


...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
A_ALERT 2011-06-02
  • 打赏
  • 举报
回复
补充问题 : 还有一个现象 我使用 Hibernate.initialize(Node.getBuilding()) 我叉 , 他也加载不出来 , 我只能手动查询 node.setBuild(b_dao.get(node.getBuild().getId())); 见鬼了, 配置文件也在上面 各位帮我看看
A_ALERT 2011-06-02
  • 打赏
  • 举报
回复
帅哥 , 我文章里面说了 我配置了..
romanitc 2011-06-02
  • 打赏
  • 举报
回复
在web.xml里配置一个OpenSessionInViewFilter,试试



<filter>
<filter-name>openSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>sf</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

A_ALERT 2011-06-02
  • 打赏
  • 举报
回复
可能我说的不是太清楚 我说我 不去手动加载 build 信息 ,而是用 session 延迟加载 node.getBuilding().getName() 直接可以使用 (如果我不去手动加载building 信息 我是没办法直接使用的) , 我debug 调试了 Session 也没有关闭 奇怪为什么用不了延迟加载
TKD03072010 2011-06-02
  • 打赏
  • 举报
回复
不明白...
亲努力啊 2011-06-01
  • 打赏
  • 举报
回复
你想怎么用?
本书由互联网上影响广泛的开放文档OpenDoc系列自由文献首份文档“Hibernate开发指南”发展而来。在编写过程中,进行了重新构思与组织,同时对内容的深度与广度进行了重点强化。本书从持久层入手,引出对象/关系数据库映射的由来,接下来聚焦于目前最完善、最强悍的ORM产品——Hibernate。从一个基础程序入手,讲述Hibernate的基本语法与配置,慢慢升高到缓存、延迟加载等高级特性。本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate实战,重点讲述了Hibernate的基础语法、基础配置、O/R映射、数据关联、数据检索、HQL实用技术、自定义持久化实现、Hibernate回调与拦截、Hibernate分页等实用技术,Hibernate实战部分则用一个真实论坛的创建演示了Hibernate的强大功能。本书有丰富的附录部,在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供读者对比与参考,也给初学者提供了一个快带起步的基础。本书适合于Hibernate的各个阶层的读者。 注:因为资源有点大,所以折分上传,需要把深入浅出hibernate(PDF)第一部分.深入浅出hibernate(PDF)第二部分,深入浅出hibernate(PDF)第三部分全部下载,并解压到一个地方才可以正常解压阅读.给大家带来不便望谅解.

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧