`
hz_chenwenbiao
  • 浏览: 1008015 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

hibernate查询表的部分属性

阅读更多

由于一个表中含有比较占内存的字段,当查询的结果比较大时,可能会造成内存泄漏,所以想在查询的时候不加载那个字段,具体类如下:

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import org.hibernate.search.annotations.DocumentId;

/**
 * 网上记账实体类
 * @since 2011-3-4 
 * @author 
 * @comment
 */
@Entity
@Table(name = "TOOLACCOUNT")
@org.hibernate.annotations.Entity(dynamicUpdate = true, dynamicInsert = true)
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class ToolAccount implements Serializable {
	private static final long serialVersionUID = 1L;

	/** 主键 * */
	@Id
	@Column(name = "TOOLACCOUNTPK", length = 19)
	@GeneratedValue(generator = "custom-id")
	@GenericGenerator(name = "custom-id", strategy = "lab24.util.TableKeyGenerator", parameters = {
			@Parameter(name = "table", value = "KEYGENERATOR_TABLE"),
			@Parameter(name = "pkColumnName", value = "G_KEY"),
			@Parameter(name = "pkColumnValue", value = "TOOLACCOUNT_PK"),
			@Parameter(name = "valueColumnName", value = "G_VALUE"),
			@Parameter(name = "allocationSize", value = "1") })
	@DocumentId
	private long toolAccountPK;

	private String title;//名称
	private Date createDate;//创建日期
	private double money ;//金额
	private String content;//内容
	private int inOrOut;//收入还是支出             0:收入            1:支出
	private String inOrOutType;//收入与支出的明线条目
	
	/** 关联用户 * */
	@ManyToOne(optional = false)
	@JoinColumn(name = "USERPK", nullable = false)
	private User user;
	
	
	public double getMoney() {
		return money;
	}
	public void setMoney(double money) {
		this.money = money;
	}
	public int getInOrOut() {
		return inOrOut;
	}
	public void setInOrOut(int inOrOut) {
		this.inOrOut = inOrOut;
	}
	public String getInOrOutType() {
		return inOrOutType;
	}
	public void setInOrOutType(String inOrOutType) {
		this.inOrOutType = inOrOutType;
	}
	public long getToolAccountPK() {
		return toolAccountPK;
	}
	public void setToolAccountPK(long toolAccountPK) {
		this.toolAccountPK = toolAccountPK;
	}
	public Date getCreateDate() {
		return createDate;
	}
	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}
}
 这里的content是比较大的信息的字段,而作统计账单信息时,它是用不上的,所以想查询的时候不要这个字段,这在hibernate 也是可以做到的,这里是使用一个新的类来存放查询的结果,因为hibernate是以封装好的对象返回来的,所以这里要新建一个对象,这个和
分享到:
评论

相关推荐

    Hibernate_query查询数据表中部分字段.

    以上就是使用Hibernate查询数据表中部分字段的方法。在实际应用中,根据项目需求和性能考虑,可以选择合适的方式进行查询。同时,要注意优化查询,避免全表扫描,减少对数据库的压力。学习和熟练掌握这些技术,将有...

    hibernate子查询

    另一种方法是改用原生的SQL查询,利用Hibernate的`Session.createSQLQuery()`方法来执行,但这可能意味着失去了部分ORM(对象关系映射)的便利性。 然而,如果你坚持使用HQL并且不想采用上述替代方案,你可能会需要...

    HQL是hibernate自己的一套查询

    根据提供的标题、描述以及部分代码内容,我们可以了解到这段材料主要涉及的是Hibernate框架中的HQL(Hibernate Query Language)查询语言的使用。接下来将详细介绍HQL的相关知识点。 ### HQL概述 HQL是Hibernate...

    Hibernate的高级查询

    HQL是Hibernate的SQL方言,它是面向对象的查询语言,允许我们用类和对象的名字而不是表和列来写查询语句。HQL支持各种复杂的查询,如连接查询、分组查询、子查询等。例如,我们可以用以下HQL语句查询所有未删除的...

    Hibernate集合属性的延迟加载.doc

    `<key>` 标签指定了关联的外键,`<composite-element>` 标签则用于映射 `Address` 类的属性到对应的表列。 延迟加载的工作原理基于代理模式。Hibernate 会创建一个代理对象,代替实际的集合对象。当尝试访问集合...

    hibernate的多态查询

    描述部分虽然为空,但通常情况下,多态查询可能涉及到的概念包括:继承、多态性、动态类型、实体类、继承层次结构的映射、集合的多态处理等。根据给出的博客链接,我们可以推测该博客可能详细讲解了这些概念在...

    hibernate3中通过nativesql或取部分字段并映射为具体对象的实现

    本篇文章将深入探讨在Hibernate3中如何通过Native SQL查询部分字段,并将其映射到具体的Java对象上。这种方式在处理一些特定的、效率较高的SQL查询时非常有用。 首先,我们需要理解Hibernate中的`SQLQuery`接口,这...

    hibernate02:session对象、hql查询、在线查询也叫对象查询、离线查询

    它允许开发者以类和属性的方式表达查询,极大地提高了代码的可读性和可维护性。HQL支持各种操作,如选择、投影、连接、分组、排序等,还可以进行复杂的条件查询和子查询。例如,以下是一个简单的HQL查询示例,用于...

    hibernate动态分表

    【hibernate动态分表】是一种数据库设计策略,主要用于处理大数据量的问题,通过将数据分散到多个物理表中,以实现水平扩展,提高查询效率,减轻单表的压力。在Java Web开发中,Hibernate作为一款流行的ORM(对象...

    hibernate中文参考文档

    11. Hibernate查询语言:Hibernate Query Language(HQL)是用于操作持久化数据的一种面向对象的查询语言,这部分将介绍HQL的基本语法和高级特性。 12. 条件查询:条件查询是数据库操作中常见的需求,文档会讲解...

    hibernate-mapping参数详解

    `hibernate-mapping`是Hibernate配置文件中的一部分,用于定义Java对象与数据库表之间的映射关系。 1. `default-access`:这个参数定义了Hibernate如何访问对象的属性。默认值是`property`,意味着Hibernate将使用...

    HQL Hibernate查询语言

    大多数情况下,你需要指定一个别名,原因是你可能需要在查询语句的其它部分引用到 Cat。例如:from Cat as cat,这个语句把别名 cat 指定给类 Cat 的实例,这样我们就可以在随后的查询中使用此别名了。 关键字 as ...

    hibernate的查询学习.

    在Hibernate中,查询是非常关键的部分,它提供了HQL(Hibernate Query Language)来实现对数据库的检索。本文将重点讨论HQL在处理多对多关系映射以及多表查询中的应用。 在Hibernate中,多对多关系通过`...

    hibernate单表基本操作实例

    - **读取(Read)**:通过`Session`的`get()`或`load()`方法获取特定ID的对象,或者使用`createQuery()`或`createSQLQuery()`执行HQL(Hibernate查询语言)或SQL来查询数据。 - **更新(Update)**:调用`Session`...

    Hibernate,hibernate笔记

    HQL是Hibernate提供的面向对象的查询语言,类似于SQL,但操作的是对象而不是表。例如,`from+对象名`的查询语句可以获取所有对象实例。HQL语句中的类名应与JavaBean的类名一致。 4. **MyEclipse集成Hibernate**: ...

    Hibernate核心配置文件对照表

    - `hibernate.connection.driver_class`: 这个属性指定用于连接数据库的JDBC驱动类。例如,对于MySQL,它通常是`com.mysql.jdbc.Driver`。 - `hibernate.connection.url`: 数据库的连接URL,其中包含了数据库...

    Hibernate生产SQL语句

    总结来说,模仿Hibernate生成SQL语句需要对Hibernate的ORM机制有深入理解,包括实体类的定义、属性映射、查询API的使用,以及Java反射的应用。通过这种方式,开发者可以自定义查询逻辑,同时利用Hibernate的强大功能...

    Hibernate入门案例源码

    这将帮助你理解Hibernate的工作原理,例如怎样执行HQL(Hibernate查询语言)或SQL查询,以及事务管理和缓存机制。 通过深入学习和实践这个入门案例,你将能够熟练掌握Hibernate的基本操作,为进一步学习更复杂的...

Global site tag (gtag.js) - Google Analytics