• ssh点滴


    *

    1,hibernate查询语句

    涉及到多表关联时,如果不需要修改同步到数据库中,避免查询出持久对象,可提高效率

    现在有两条HQL查询语句,分别如下:
    from Customer c inner join c.orders o group by c.age;(1)

    select c.ID,c.name,c.age,o.ID,o.order_number,o.customer_ID
    from Customer c inner join c.orders c group by c.age;(2)
    这两条语句使用了HQL语句的内连接查询(我们将在HQL语句的连接查询部分专门讨论),现在我们可以看出这两条查询语句最后所返回的结果是一样的,但是它们其实是有明显区别的,语句(1)检索的结果会返回Customer与Order持久化对象,而且它们会被置于Hibernate的Session缓存之中,并且Session会负责它们在缓存中的唯一性以及与后台数据库数据的同步,只有事务提交后它们才会从缓存中被清除;而语句(2)返回的是关系数据而并非是持久化对象,因此它们不会占用Hibernate的Session缓存,只要在检索之后应用程序不在访问它们,它们所占用的内存就有可能被JVM的垃圾回收器回收,而且Hibernate不会同步对它们的修改。

    参考地址:http://itshu.iteye.com/blog/231050

    2,@within与@target

    @within(M)匹配标注了@M注解的类及子孙类

    @target(M)匹配任意标注了@M的目标类

    注:如果标注了@M的是接口,则接口实现类都不匹配,因为他们是针对目标类,而不是针对运行时的引用类型

    *

    有问题在公众号【清汤袭人】找我,时常冒出各种傻问题,然一通百通,其乐无穷,一起探讨


  • 相关阅读:
    子集和的另外一个问题
    LCS
    表达式求值
    Singleton in java
    自绘ListBox的两种效果
    动态创建、压缩Access数据库(*.MDB)
    C# 中用stopwatch测试代码运行时间
    MVC学习笔记之数据传递
    ATM应用实现
    html的基本语法
  • 原文地址:https://www.cnblogs.com/qingmaple/p/4169199.html
Copyright © 2020-2023  润新知