【问题标题】:How do I add sorting to this hibernate call in my Spring WebFlow project如何在我的 Spring WebFlow 项目中向这个休眠调用添加排序
【发布时间】:2012-09-03 14:45:06
【问题描述】:

如何在我的 Spring WebFlow 项目中为这个休眠调用添加排序。我正在开发一个 Spring Webflow 项目,我必须在以下调用中添加排序。

@SuppressWarnings("unchecked")
    public List<School_lookupModel> getSelectableSchools(String b) {
        String myLike = b + "%";
        Session mySession = sessionFactory.getCurrentSession();
        List<School_lookupModel> mySchools = (List<School_lookupModel>) mySession
                .createCriteria(School_lookupModel.class)
                .add(Restrictions.like("school", myLike)).list();

        return mySchools;
    }

我尝试了以下代码,但无法构建:

public List<School_lookupModel> getSelectableSchools(String b) {

        String myLike = b + "%";

        Session mySession = sessionFactory.getCurrentSession();

        List<School_lookupModel> mySchools = (List<School_lookupModel>) mySession
                .createCriteria(School_lookupModel.class)
            .add(Restrictions.like("school", myLike)
            .addOrder(Order.asc("school"))).list();


        return mySchools;
    }

有人可以告诉我如何在第一次通话中添加订单。谢谢我在构建时遇到以下两个错误:

语法错误,插入“)”完成 和 对于 SimpleExpression 类型,方法 addOrder(Order) 未定义

这是我的课:

package org.xxx.schoolvisit.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.Size;

import org.hibernate.annotations.OrderBy;

@Entity
@Table(name = "school")
public class School_lookupModel {

    @Override
    public String toString() {
        return "School_lookupModel [school=" + school + ", school_name="
                + school_name + ", region=" + region + ", district=" + district
                + ", getSchool()=" + getSchool() + ", getSchool_name()="
                + getSchool_name() + ", getRegion()=" + getRegion()
                + ", getDistrict()=" + getDistrict() + ", getClass()="
                + getClass() + ", hashCode()=" + hashCode() + ", toString()="
                + super.toString() + "]";
    }

    @Id
    @Column(name = "school")
    private String school; 

    @Column(name = "school_name")
    private String school_name; 

    @Column(name = "region")
    private String region; 

    @Column(name = "district")
    private String district;

    public String getSchool() {
        return school;
    }

    public void setSchool(String school) {
        this.school = school;
    }

    public String getSchool_name() {
        return school_name;
    }

    public void setSchool_name(String school_name) {
        this.school_name = school_name;
    }

    public String getRegion() {
        return region;
    }

    public void setRegion(String region) {
        this.region = region;
    }

    public String getDistrict() {
        return district;
    }

    public void setDistrict(String district) {
        this.district = district;
    } 


}

【问题讨论】:

    标签: java spring hibernate spring-mvc spring-webflow


    【解决方案1】:

    你在这个级别缺少一个括号

      .add(Restrictions.like("school", myLike)
      .addOrder(Order.asc("Name")).list();
    

    变成这样

     .add(Restrictions.like("school", myLike)
      .addOrder(Order.asc("Name"))).list();
    

    您遇到的错误是什么? 看这里的例子: http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html 看来您的语法是正确的,它必须与 O/R 映射有关,您是否使用注释将类映射到表或 xml 文件?您是否有一个名为 Name 的字段,或者您有 name 或 NAME?你试过这些吗?

    【讨论】:

    • 语法错误,插入 ")" 来完成并且方法 addOrder(Order) 对于 SimpleExpression 类型未定义
    • 不起作用..我知道他的方法 addOrder(Order) 对于 SimpleExpression 类型是未定义的
    猜你喜欢
    • 2013-06-09
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 2023-03-08
    相关资源
    最近更新 更多