`
henghengdh
  • 浏览: 157470 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate别名Alias

阅读更多
实体:考试,成绩,学生,班级
关系:成绩与考试多对一,成绩与学生多对一,学生与班级多对一.
需求:要根据考试id和班级id查询学生成绩.

Score
@Entity  
public class Score {  
  
    private int id;  
  
    private Student student;  
  
    private Exam exam;  
  
    private int score;  
  
    @Id  
    @GeneratedValue(strategy = GenerationType.IDENTITY)  
    public int getId() {  
        return id;  
    }  
  
    public void setId(int id) {  
        this.id = id;  
    }  
  
    @ManyToOne  
    @JoinColumn(name = "studentid", referencedColumnName = "id")  
    public Student getStudent() {  
        return student;  
    }  
  
    public void setStudent(Student student) {  
        this.student = student;  
    }  
  
    @ManyToOne  
    @JoinColumn(name = "examid", referencedColumnName = "id")  
    public Exam getExam() {  
        return exam;  
    }  
  
    public void setExam(Exam exam) {  
        this.exam = exam;  
    }  
  
    public int getScore() {  
        return score;  
    }  
  
    public void setScore(int score) {  
        this.score = score;  
    }  
  
}  


Student
private int id;  
  
    private Grade grade;  
  
    private String name;  
    @Id  
    @GeneratedValue(strategy = GenerationType.IDENTITY)  
    public int getId() {  
        return id;  
    }  
  
    public void setId(int id) {  
        this.id = id;  
    }  
  
    @ManyToOne  
    @JoinColumn(name = "gradeid", referencedColumnName = "id")  
    public Grade getGrade() {  
        return grade;  
    }  
  
    public void setGrade(Grade grade) {  
        this.grade = grade;  
    }  
  
    public String getName() {  
        return name;  
    }  
  
    public void setName(String name) {  
        this.name = name;  
    }  


Exam和Grade略

下面是查询代码.
ScoreDao:
@SuppressWarnings("unchecked")  
    public List<Score> getList(int examid, int gradeid) {  
        Criteria c = getSession().createCriteria(Score.class);  
        c.setFetchMode("exam", FetchMode.JOIN);  
        c.add(Restrictions.eq("exam.id", examid));  
        c.createAlias("student.grade", "grade");  
        c.add(Restrictions.eq("grade.id", gradeid));  
  
        return c.list();  
    }  


转自:http://www.verydemo.com/demo_c146_i2502.html
分享到:
评论

相关推荐

    jpa 别名转实体

    在JPA中,我们经常需要处理SQL查询结果,这些结果可能包含别名,例如在HQL(Hibernate Query Language)或JPQL(Java Persistence Query Language)查询中定义的别名。别名的作用是为了使查询语句更加简洁易读,并且...

    在Hibernate中配置Proxool连接池

    在上述配置中,我们通过`hibernate.proxool.properties`指定了Proxool的配置文件路径,`hibernate.proxool.pool_alias`设置了连接池的别名,这个别名需要与Proxool配置文件中的alias一致。 接下来,我们需要创建...

    Hibernate+中文文档

    16.1. 别名注射(alias injection names) 19.1. 缓存策略提供商(Cache Providers) 19.2. 各种缓存提供商对缓存并发策略的支持情况(Cache Concurrency Strategy Support) 20.1. Summary 20.2. SchemaExport...

    hibernate3.2中文文档(chm格式)

    16.1. 别名注射(alias injection names) 19.1. 缓存策略提供商(Cache Providers) 19.2. 各种缓存提供商对缓存并发策略的支持情况(Cache Concurrency Strategy Support) 20.1. Summary 20.2. SchemaExport...

    HibernateAPI中文版.chm

    16.1. 别名注射(alias injection names) 19.1. 缓存策略提供商(Cache Providers) 19.2. 各种缓存提供商对缓存并发策略的支持情况(Cache Concurrency Strategy Support) 20.1. Summary 20.2. SchemaExport...

    Hibernate criteria基本操作

    使用 `alias` 方法为分组字段设定别名: ```java criteria.setProjection(Projections.alias(Projections.groupProperty("price"), "p")); ``` 12. 投影查询: 可以通过 `setProjection` 设定要查询的字段,...

    Proxool 在 Hibernate 中的典型配置

    4. `&lt;alias&gt;`标签:为该连接池定义一个别名,例如`&lt;alias&gt;mssqlProxool&lt;/alias&gt;`,便于在应用程序中引用。 5. `&lt;house-keeping-test-sql&gt;`标签:这个标签定义了一个用于测试数据库连接状态的SQL语句,如`...

    Hibernate+本地SQL查询SQLQuery宣贯.pdf

    这里的`{cat.*}`是Hibernate的别名语法,用于指定SQL查询中的表别名,并将其与Java实体类关联。 如果查询涉及到关联加载,比如加载子实体或集合,可以使用`addJoin()`方法: ```java List&lt;Cat&gt; cats = sess....

    Hibernate Proxool连接池配置总结及常遇问题

    这里,`pool_alias`定义了连接池的别名,`hibernate.proxool.xml`指定了Proxool配置文件的位置,`connection.provider_class`则指明使用Proxool作为连接提供者。 **(3)Proxool配置文件** 创建`ProxoolConf.xml`...

    Hibernate Criteria 排序的問題

    - **Criteria.createCriteria(String alias)**:用于创建子查询,alias参数用于指定关联对象的别名。 - **Criteria.addOrder(Order order)**:用于添加排序规则。 #### 三、示例解析 接下来,我们将逐一分析给定的...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    16.1. 别名注射(alias injection names) 19.1. 缓存策略提供商(Cache Providers) 19.2. 各种缓存提供商对缓存并发策略的支持情况(Cache Concurrency Strategy Support) 20.1. Summary 20.2. SchemaExport...

    Hibernate 中文 html 帮助文档

    别名和属性引用(Alias and property references) 16.1.5. 返回非受管实体(Returning non-managed entities) 16.1.6. 处理继承(Handling inheritance) 16.1.7. 参数(Parameters) 16.2. 命名SQL查询 16.2.1. 使用...

    hibernate连接池配置

    这里定义了一个别名为pool1的连接池,并指定了配置文件ProxoolConf.xml的位置。这个文件需要放在与hibernate.cfg.xml相同的目录下,内容应包括数据库驱动、URL等信息。由于Proxool自身管理连接,所以在hibernate配置...

    Hibernate三大类查询总结

    此外,Hibernate允许我们直接使用SQL表达式,如通过`Restrictions.sql()`方法实现,但需要注意的是,`{alias}`需要替换为查询实体的列别名。 ```java List&lt;Cat&gt; cats = sess.createCriteria(Cat.class) .add...

    Criteria(hibernate3.0).rar_Criteria java_criteria Hibernate_hibe

    动态Criteria允许我们在运行时构建查询,通过`createCriteria(String propertyName, String alias)`方法指定别名,然后根据需要添加限制条件。这种方式在处理复杂查询时非常有用。 七、总结 Hibernate 3.0的...

    Hibernate查询语句统一配置管理.doc

    &lt;return alias="user" class="hibernate.entity.User"/&gt; SELECT user.id AS {user.id}, user.name AS {user.name} FROM t_user user WHERE user.name = ? ``` `&lt;sql-query&gt;`标签中的`return`元素指定了查询结果...

    mysql “ Every derived table must have its own alias”出现错误解决办法

    在MySQL数据库操作中,"Every derived table must have its own alias"是一个常见的错误提示,它意味着在你的SQL查询语句中,所有的子查询结果(也称为派生表)都需要被赋予一个唯一的别名。这个错误通常发生在多表...

    JSF+Spring+Hibernate

    - `&lt;alias&gt;`:数据库别名。 - `&lt;driver-url&gt;`:数据库URL。 - `&lt;driver-class&gt;`:数据库驱动类。 - `&lt;driver-properties&gt;`:数据库连接参数。 - `&lt;minimum-connection-count&gt;`、`&lt;maximum-connection-count&gt;`:...

    hibernate creteria

    这里 `{alias}` 是被查询实体的列别名。 #### 六、结果集排序 使用 `Order` 类可以对查询结果进行排序。例如,按照名字升序,年龄降序获取数据: ```java List&lt;Cat&gt; cats = sess.createCriteria(Cat.class) .add...

    truts2+hibernate3.2+spring2.5 proxool成步骤

    在构建企业级Java应用时,整合Struts2、Hibernate3.2和Spring2.5是一个常见的选择,因为这三个框架分别负责MVC模式的展现层、持久层管理和业务层的依赖注入。在这个过程中,使用Proxool作为数据库连接池能够有效地...

Global site tag (gtag.js) - Google Analytics