zoukankan      html  css  js  c++  java
  • Hibernate查询

    一、Hibernate的双向关联关系,你在哪一端设置lazy属性,那么在查询时就对哪一端起作用。例如双向多对一关联关系中,在一端中设置lazy属性为true,那么在查询一端的记录时就不会把关联的多端的记录查询出来,等到需要的时候再查询出来。

    二、Hibernate的双向多对一关联关系中如果对两端的对象都调用toString()方法的话会出现堆栈溢出的现象,通常的解决办法是不要两端都重写toString()方法,不写或者只写一端的就可以。比如Country类为一端,Competition为多端。那么如下代码是不会报错的。

            Country country = (Country) session.get(Country.class, 1);
            Set<Competition> competitions = country.getCompetitions();

    但是你要打印某一段的对象就都会出现无限递归,堆栈溢出的情况。如下:

    打印多端的集合会报错

            Country country = (Country) session.get(Country.class, 1);
            Set<Competition> competitions = country.getCompetitions();
            System.out.println(competitions);//打印多端的集合对报错。

    打印多端的某一个对象也会报错

            for (Competition c : competitions)
            {
                System.out.println(c);
            }

    打印一端的某一个对象也会报错。。。。。。这里不列举了。要就把toString方法里另一端关联的对象去掉。

  • 相关阅读:
    关于使用表格制作页面
    0728关于html的几个基础知识点
    实验四 主存空间的分配和回收模拟
    实验三同学评论http://home.cnblogs.com/u/MyDring/
    实验三 进程调度模拟程序
    实验二报告
    实验一报告
    0909操作系统
    log4j的配置文件的编写
    随机产生数,字母
  • 原文地址:https://www.cnblogs.com/GooPolaris/p/7919877.html
Copyright © 2011-2022 走看看