zoukankan      html  css  js  c++  java
  • Hibernate设置派生属性(formula)

    一、Customer中包含的字段:

    private static final long serialVersionUID = 1L;
        private Integer id;
        private String sex;
        private double salary;
        private Double comm;
        private String birth;
        private Double total;
        private String desc;

    二、Hibernate配置文件

    <class name="Customer" table="customers" catalog="hjd">
            <id name="id" column="id">
                <generator class="native"></generator>
            </id>
            <property name="sex" length="4"></property>
            <property name="salary" />
            <property name="comm"/>
            <!-- 类中没有birth的get set 方法 -->
            <property name="birth" type="date" access="field"/>
            
            <!-- 映射Java持久化类中不存在的属性,只要用于HQL中,当数据库中有某列,二实体中不存在 -->
            <property name="deptName" type="string" access="noop"/>
            
            <property name="total" formula="(select c.salary+c.comm from customers c where c.id=id)"></property>
            <property name="desc" column="`desc`"/>
        </class>

    三、测试

    获得每个部门发出的工资总数

    @Test
        public void getObject() {
            Session session = HiberSessionFactory.getSession();
            /*Customer c=(Customer) session.get(Customer.class, 2);
            System.out.println(c.getTotal());*/
            @SuppressWarnings("unchecked")
            List<Customer> list=session.createCriteria(Customer.class).add(Restrictions.eq("deptName", "军")).list();
            int total=0;
            for(Customer c:list){
                total+=c.getTotal();
            }
            System.out.println(total);
            HiberSessionFactory.closeSession();
        }

  • 相关阅读:
    win10x64位系统中nodejs的安装和配置
    My97 DatePicker获取自定义日期的前一天
    easyUI在使用字符串拼接时样式不起作用,点击加号增加一行,点击减号删除一行效果。
    easyUI datagarid单元格动态合并
    js单体内置对象
    [BZOJ 1878][SDOI2009]HH的项链
    [BZOJ 3932][CQOI2015]任务查询系统
    [BZOJ 3123] 森林
    [BZOJ 3295] 动态逆序对
    [BZOJ 1901] Dynamic Rankings
  • 原文地址:https://www.cnblogs.com/ly-radiata/p/4462535.html
Copyright © 2011-2022 走看看