`

hibernate sql查询转化为实体类

阅读更多

在多表查询的时候使用hibernate的sql查询的时候,一般返回的是object[]数组,或者可以使用

 session.createSQLQuery(sql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

来转化为map来进行处理,可以通过以下方式将查询结果转化为实体类:

 

1,sql语句 String sql="select s.id as id,s.classname as classname from grade s,student st where s.id=st.classid"

 

利用以下语句

session.createSQLQuery(sql)      .setResultTransformer(Transformers.aliasToBean(Grade.class))可以将sql中查询出来的字段转化为班级这个实体类,但是必须为每个字段指定别名,别名就是班级类里面的对应的属性,但必须注意,对每一个列都必须addScalar("列名"),如果不设置addScalar方法可能会报转型错误的异常.如果查询的结果里面包括多个表里面的字段,不能对应一个实体类去接受,就需要新建一个与查询结果对应的实体类,或者直接使用map结果集

 

2,sql语句 String sql="select {s.*} from grade s,student st where s.id=st.classid" 

 

针对这样的全部字段查询的sql可以利用addEntity来转化为实体类

SQLQuery query=session.createSQLQuery(sql) ;

query.addEntity("s", Grade.class);

 

SQL查询语句,它带一个占位符,可以让Hibernate使用字段的别名.

查询返回的实体,和它的SQL表的别名.

addEntity()方法将SQL表的别名和实体类联系起来,并且确定查询结果集的形态。

这样就可以将班级这张表里面的所有字段的值赋值给班级这个实体类java培训机构排名,而且必须是所有的属性

 

3,sql语句 String sql="select {s.*},{st.*} from grade s,student st where s.id=st.classid" 

SQLQuery query=session.createSQLQuery(sql) ;

query.addEntity("s", Grade.class);

query.addEntity("st", Student.class);

利用这样的查询得到的是一个object[]数组,object[0]就是班级实体类,object[1]就是学生实体类

可以用addScalar(String arg,Type type)方法定义要返回的字段类型,如

s.createSQLQuery(shuiQingHQL).addScalar("STCD",Hibernate.STRING).addScalar("STNM")

分享到:
评论

相关推荐

    hibernate实现动态SQL查询

    例如,我们可以为一个实体类定义多个HQL或SQL查询,根据实际需要选择执行哪一个。 五、FREEMARKER解析 FREEMARKER是一款强大的模板引擎,常用于Web应用中的视图渲染。在Hibernate中,我们可以利用FREEMARKER生成...

    生成hibernate实体类

    2. **引入Hibernate工具**:Hibernate提供了一个名为`hibernatetool`的命令行工具,或者可以通过IDE插件(如Eclipse或IntelliJ IDEA的Hibernate插件)来实现实体类的自动生成。你需要在项目中添加Hibernate的相关...

    一个自动生成实体类和SQL语句的工具 1.0版

    标题中的“一个自动生成实体类和SQL语句的工具 1.0版”指的是一个软件开发辅助工具,它能够帮助程序员自动创建实体类(Entity Classes)以及对应的SQL查询语句。这种工具通常用于提高开发效率,减少手动编写这些代码...

    sqlserver的hibernate

    例如,我们有一个名为`User`的实体类,我们需要为它创建一个对应的`User.hbm.xml`映射文件,定义字段与数据库列的对应关系: ```xml <hibernate-mapping> </hibernate-mapping> ``` ### Session工厂...

    根据数据库表生成实体、hibernate配置文件和实体映射文件

    为了将数据库表转化为实体类,我们可以使用Hibernate的代码生成工具,如Hibernate Tools或JPA的逆向工程。这些工具可以分析数据库元数据,自动生成对应的Java实体类。实体类通常包含与数据库表字段相对应的属性,...

    Hibernate_query查询数据表中的一个字段.

    在使用Hibernate进行查询前,首先需要进行基本的配置,包括创建hibernate.cfg.xml配置文件,设置数据库连接信息,以及实体类和表的映射文件(.hbm.xml)。 三、Entity类与表的映射 在Hibernate中,每一个数据库表都...

    hibernate实体生成工具

    通过Hibernate,开发者可以将数据库的操作转化为对Java对象的操作,减少了直接操作SQL的繁琐和可能出现的错误。 ### 实体类(Entity) 在Hibernate中,实体类代表数据库中的表,每个实体类对应一个表,类的属性对应...

    Java数据类型,Hibernate数据类型,标准sql数据类型之间的对应表

    当我们在使用Hibernate时,我们需要了解Java数据类型如何与SQL数据类型对应,以便正确地配置实体类和Hibernate的映射文件(通常是.hbm.xml文件或使用注解的方式)。例如,Java的`int`类型通常对应于SQL的`INTEGER`,...

    解决Hibernate对于Date类型的数据返回结果中时分秒不对的问题

    - **明确日期时间格式**:在Hibernate的配置文件中,可以使用`<property name="hibernate.jdbc.time_zone">`来指定时区,或者在实体类中使用`@Type`注解自定义日期时间的转换器。 - **修改实体类属性**:将Date类型...

    MySQL表自动生成Java实体类

    在Java世界中,实体类通常用于ORM(对象关系映射)框架,如Hibernate或MyBatis,它们将数据库表的行映射为Java对象的实例。实体类通常包含对应于数据库表字段的属性,并且具有getter和setter方法,以及可能的构造...

    hibernate查询之HQLhibernate查询之HQL

    与SQL不同,这里的User是指定的Java实体类,而非数据库中的表。HQL支持条件查询,如`select usr.name, usr.age from User where usr.age > 20 and usr.age ,可以检索年龄在20到60之间的User的姓名和年龄。当查询...

    DynamicDB 动态生成SQL

    - 在Java中,我们可以使用Hibernate、MyBatis等ORM(对象关系映射)框架,将实体类与数据库表进行绑定,简化了数据库操作。 2. **SQL转化**: - SQL转化是指将业务逻辑或对象模型转化为相应的SQL语句。这在处理...

    hibernate+struts实现数据库查询的例子

    在这个例子中,Hibernate可能会被用来定义实体类,配置映射文件,并编写SQL查询语句,以便从数据库中检索数据。 `Struts2`是基于MVC设计模式的Web应用框架,它的主要职责是处理HTTP请求,调度控制器并决定哪个...

    数据库表映射成实体类

    "数据库表映射成实体类"是一种常见的做法,它允许我们通过对象-关系映射(ORM)技术将数据库中的表格结构转化为Java类,这些类通常被称为JavaBean。这种映射过程大大简化了数据操作,使得开发人员可以使用面向对象的...

    数据库实体类代码生成

    ORM框架如Hibernate、MyBatis等,它们的核心功能之一就是将数据库操作转化为对象操作,实体类在这其中起到了关键作用。例如,Hibernate通过注解或XML配置文件将实体类与数据库表关联,实现CRUD(创建、读取、更新、...

    Hibernate 3.3 core API

    Hibernate将HQL转化为SQL执行,实现了ORM的透明化。 以上是Hibernate 3.3核心API中的关键知识点,这些概念和API构成了Hibernate框架的基础,对于理解和使用Hibernate进行数据库操作至关重要。在实际开发中,掌握...

    eclipse自动生成实体类

    ORM框架会根据实体类自动执行SQL语句。 实体类的自动生成极大地提高了开发效率,减少了错误的可能性,使得开发者可以更专注于业务逻辑的实现。在实际项目中,尤其在数据库表结构复杂时,这一功能的价值更为凸显。...

    实体类的注解

    例如,`findAllByActive(Boolean active)`会自动转化为SQL:`SELECT * FROM User WHERE active = ?1`。 最后,`@AllArgsConstructor`, `@NoArgsConstructor`, `@Data`这些Lombok注解能帮助我们简化实体类的创建,...

    实体类生成器源码C#/Java版本

    Java中的实体类同样用于ORM框架,如Hibernate,它们在Java应用程序中代表数据库表的行。生成Java实体类时,工具会考虑字段的数据类型、主键、外键等关系,并根据JPA(Java Persistence API)标准生成相应的注解,...

    hibernate jar包和dtd

    在Java应用程序中,Hibernate通过ORM(Object-Relational Mapping)技术将复杂的SQL操作转化为对Java对象的操作,极大地简化了数据访问层的代码。在给定的“hibernate5.0.7 jar”中,包含了Hibernate框架的核心库,...

Global site tag (gtag.js) - Google Analytics