SRPING+SPRINGMVC+JAP+HIBERNATE


1.如果使用hibernate-jap-2.0-api,会出现问题:

NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode()




2.


@CookieValue 可以把Request header中关于cookie的值绑定到方法的参数上。

例如有如下Cookie值:

  1. JSESSIONID=415A4AC178C59DACE0B2C9CA727CDD84 

参数绑定的代码:

  1. @RequestMapping("/displayHeaderInfo.do")  
  2. public void displayHeaderInfo(@CookieValue("JSESSIONID") String cookie)  {  
  3. }  

即把JSESSIONID的值绑定到参数cookie上。

 


2: QBC (Query By Criteria) 主要有Criteria,Criterion,Oder,Restrictions类组成
   session = this.getSession();
   Criteria cri = session.createCriteria(JdItemSerialnumber.class);
   Criterion cron = Restrictions.like("customer",name);
   cri.add(cron);
   list = cri.list();
   ==============================
   比较运算符
   HQL运算符                   QBC运算符                      含义
      =                     Restrictions.eq()                  等于
      <>                   Restrictions.not(Exprission.eq())  不等于
      >                     Restrictions.gt()                  大于
      >=                   Restrictions.ge()                  大于等于
      <                     Restrictions.lt()                  小于
      <=                   Restrictions.le()                  小于等于
      is null             Restrictions.isnull()              等于空值
      is not null      Restrictions.isNotNull()           非空值
      like                 Restrictions.like()                字符串模式匹配
      and                Restrictions.and()                 逻辑与
      and                Restrictions.conjunction()         逻辑与
      or                   Restrictions.or()                  逻辑或
      or                   Restrictions.disjunction()         逻辑或
      not                  Restrictions.not()                 逻辑非
      in(列表)          Restrictions.in()                  等于列表中的某一个值
      ont in(列表)         Restrictions.not(Restrictions.in())不等于列表中任意一个值
      between x and y      Restrictions.between()             闭区间xy中的任意值
      not between x and y  Restrictions.not(Restrictions..between()) 小于值X或者大于值y

3: HQL
   String hql = "select s.name ,avg(s.age) from Student s group by s.name";
   Query query = session.createQuery(hql);
   list = query.list();
   ....

4: 本地SQL查询
   session = sessionFactory.openSession();
   tran = session.beginTransaction();
   SQLQuery sq = session.createSQLQuery(sql);
   sq.addEntity(Student.class);
   list = sq.list();
   tran.commit();

5: QID 
   Session的get()和load()方法提供了根据对象ID来检索对象的方式。该方式被用于事先知道了要检索对象ID的情况。 


6.@JsonBackReference在 ONETOMANY端控制死循环



7. ajax中绝对路径要加上项目名  /em/org/isOrgExist



8.ModelAtribute的用法, 在form采用  name="a.bId"的方式,Spring也会帮你自动转换


9.DetachedCriteria 在做自链接的时候,子类信息会被父类覆盖,呆滞parent为空。


10. 当在查询功能钱增加了propagation readOnly之后,会出现取不出lazy数据的问题


11. easyyi datagrid 双击

onDblClickRow: function (index, row) {
                alert(row);
            }

 

12.返回结果映射到具体的类。可以是实体类,也可以是普通的pojo类。查询代码如下:

Query query = session.createSQLQuery(sql.toString()).setResultTransformer(Transformers.aliasToBean(CheckInfo.class));//CheckInfo为pojo类 

SQLQuery sqluery = session.createSQLQuery(sql).addEntity(User.class);//User为实体类,对应数据库的某个表 

 

如果存在返回多个实体的情况:

session.createSQLQuery("SELECT {user.*}, {role.*}  FROM user u, role r WHERE u.roleId= r.id")   .addEntity("user", User.class)   .addEntity("role", Role.class)    {user.*}的user就是 addEntity("user", User.class)里面的user

SQLQuery query = session.createSQLQuery(sql).addScalar("别名", Hibernate.INTEGER);//指定别名的数据类型//多个别名可以连续写多个如:session.createSQLQuery(sql).addScalar("别名", Hibernate.INTEGER).addScalar("别名1",Hibernate.INTEGER); 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值