hibernate过滤器的参数配置

LittleLeeZi 2014-02-21 04:03:28
第一次使用hibernate过滤器,对里面的参数有一些不了解

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping package="com.ys.store.entity">
<class name="Staff" table="ms_staff" catalog="mobile_stores">
<id name="staffNo" type="string">
<column name="staff_no" length="20" />
<generator class="assigned"></generator>
</id>
<property name="staffName" type="string">
<column name="staff_name" length="20" not-null="true" />
</property>
<set name="atts" lazy="true">
<key column="att_staff_no"></key>
<one-to-many class="Attendence"/>
<filter name="myFilter" condition="attTime between :startTime and :endTime"/>
</set>
</class>
<filter-def name="myFilter">
<filter-param name="attTime" type="string"/>
</filter-def>
</hibernate-mapping>

attTime是Attendence的属性,startTime和endTime是个时间段
我要实现的是过滤出attTime在startTime和endTime时间段内的staff的关联attence集合
dao里如下:

public List<Staff> selectStaffsTodayAtt(String start, String end) {
Session session=this.getSession();
session.enableFilter("myFilter");

return session.createQuery("from Staff").setParameter("startTime",start).setParameter("endTime", end).list();
}

我这样写正确吗?出异常说attTime未赋值,难道我理解错了?

<filter-def name="myFilter">
<filter-param name="attTime" type="string"/>
</filter-def>
这里面的name属性指定的是什么值?
<filter name="myFilter" condition="attTime between :startTime and :endTime"/>
这里面的condition又该如何写
...全文
127 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
LittleLeeZi 2014-02-21
  • 打赏
  • 举报
回复
问题解决了 <filter-def name="myFilter"> <filter-param name="attTime" type="string"/> </filter-def> name指定的是你的程序传递进来的参数 <filter name="myFilter" condition="attTime between :startTime and :endTime"/> condition里除了name指定的外都需要是多的一端的字段名 综上,应该改为

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping package="com.ys.store.entity">
    <class name="Staff" table="ms_staff" catalog="mobile_stores">
        <id name="staffNo" type="string">
            <column name="staff_no" length="20" />
            <generator class="assigned"></generator>
        </id>
        <property name="staffName" type="string">
            <column name="staff_name" length="20" not-null="true" />
        </property>
        <set name="atts" lazy="true">
            <key column="att_staff_no"></key>
            <one-to-many class="Attendence"/>
            <filter name="myFilter1" condition="att_time>start"/>
            <filter name="myFilter2" condition="att_time<end"/>
        </set>    
    </class>
    <filter-def name="myFilter1">
        <filter-param name="start" type="string"/>
    </filter-def>
    <filter-def name="myFilter2">
        <filter-param name="end" type="string"/>
    </filter-def>
</hibernate-mapping>
LittleLeeZi 2014-02-21
  • 打赏
  • 举报
回复
大神们,求解啊
HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. 映射Person类 1.3.2. 单向Set-based的关联 1.3.3. 使关联工作 1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6. 使双向连起来 1.4. 第三部分 - EventManager web应用程序 1.4.1. 编写基本的servlet 1.4.2. 处理与渲染 1.4.3. 部署与测试 1.5. 总结 2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二进制流 (Binary Streams) 3.4.4. 二级缓存与查询缓存 3.4.5. 查询语言中的替换 3.4.6. Hibernate的统计(statistics)机制 3.5. 日志 3.6. 实现NamingStrategy 3.7. XML配置文件 3.8. J2EE应用程序服务器的集成 3.8.1. 事务策略配置 3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators)(可选) 4.2. 实现继承(Inheritance) 4.3. 实现equals()和hashCode() 4.4. 动态模型(Dynamic models) 4.5. 元组片断映射(Tuplizers) 5. 对象/关系数据库映射基础(Basic O/R Mapping) 5.1. 映射定义(Mapping declaration) 5.1.1. Doctype 5.1.2. hibernate-mapping 5.1.3. class 5.1.4. id 5.1.5. composite-id 5.1.6. 鉴别器(discriminator) 5.1.7. 版本(version)(可选) 5.1.8. timestamp (可选) 5.1.9. property 5.1.10. 多对一(many-to-one) 5.1.11. 一对一 5.1.12. 自然ID(natural-id) 5.1.13. 组件(component), 动态组件(dynamic-component) 5.1.14. properties 5.1.15. 子类(subclass) 5.1.16. 连接的子类(joined-subclass) 5.1.17. 联合子类(union-subclass) 5.1.18. 连接(join) 5.1.19. 键(key) 5.1.20. 字段和规则元素(column and formula elements) 5.1.21. 引用(import) 5.1.22. any 5.2. Hibernate 的类型 5.2.1. 实体(Entities)和值(values) 5.2.2. 基本值类型 5.2.3. 自定义值类型 5

67,512

社区成员

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

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