定义实体
package com.jlee06.QL;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
/**
* @author JLee
* 主题
*/
@Entity
@Table(name="topic")
@NamedQueries({
@NamedQuery(name="Topic.selectTopic" , query="from Topic t where t.id = :id ") ,
@NamedQuery(name="Topic.conditionTopic" , query="from Topic t where t.title like :title ")
})
@org.hibernate.annotations.Entity(
dynamicInsert=true,
dynamicUpdate=true)
//hibernate3.3.2尚未支持
//@NamedNativeQueries({
// @NamedNativeQuery(name="native_sql_page" , query="select * from topic limit 2,5")
//})
public class Topic {
private int id ;
private String title ;
private Date createDate ;
public Date getCreateDate() {
return createDate;
}
@Column(name="createDate")
// @Temporal(TemporalType.DATE)
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
private Category category ;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(name="title" , length=32)
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="categoryId")
public Category getCategory() {
return category;
}
public void setCategory(Category category) {
this.category = category;
}
}
执行的HQL语句
@Test
public void testInsert(){
Topic t = new Topic() ;
t.setTitle("insert") ;
Session session = sf.getCurrentSession() ;
Transaction tr = session.getTransaction() ;
tr.begin() ;
session.saveOrUpdate(t) ;
tr.commit() ;
}
@Test
public void testUpdate(){
Session session = sf.getCurrentSession() ;
Transaction tr = session.getTransaction() ;
tr.begin() ;
Topic t = new Topic() ;
t = (Topic)session.load(Topic.class, 1) ;//这里将数据库中的对象加载到内存
t.setCreateDate(new Date()) ;
session.saveOrUpdate(t) ;//执行这条语句之前会匹配哪一个字段与内存中的不一样,之后再进行更新
tr.commit() ;
}
分享到:
相关推荐
修改了Hibernate的源码,可动态增加映射文件
在实际应用中,有时我们需要动态地添加或修改Hibernate Domain(领域模型)的属性,以应对需求的变化。本例子将详细介绍如何在Hibernate中实现这个功能。 首先,理解Hibernate Domain的概念。Domain是业务逻辑中的...
【标题】"cxf+spring+hibernate整合添加功能实现修改版"涉及的是一个集成开发环境中的核心技术栈,即Apache CXF、Spring框架和Hibernate ORM的整合应用,旨在实现服务添加功能的优化。Apache CXF是一个开源的WS-*...
在Virgo应用服务器中添加Hibernate支持,涉及到一系列的配置与依赖库的引入。Virgo,全称为OSGi Enterprise Platform,是SpringSource推出的一款基于OSGi规范的应用服务器,旨在为开发和部署企业级应用程序提供一个...
下载Hibernate-Extensions的完整安装包(如Hibernate-extensions-2.1.3)后,将其添加到项目的类路径中。接着,在Hibernate配置文件中启用所需的扩展,并根据项目需求进行相应配置。安装过程简单直观,使得开发者能...
如果遇到错误,例如配置错误导致browse无法选择正确的项目目录,可能需要手动修改`.project`文件的natures部分,确保包含Hibernate的nature。 总的来说,Hibernate是Java开发中的重要工具,它通过ORM解决了数据库...
与 createQuery 方法不同的是,createSqlQuery 方法可以执行查询、修改和添加操作。 使用 createSqlQuery 方法可以执行以下操作: 1. 查询操作:使用 createSqlQuery 方法可以执行查询操作,例如: String sql = ...
在你的配置文件中添加或修改如下: ```xml <property name="hibernate.format_sql">true ``` 此外,还需要引入一个日志框架,如Log4j或SLF4J,以获取更详细的日志输出。如果你选择Log4j,确保在类路径中有`log4j....
标题"hibernate的jar包"表明了这个压缩包包含的是与Hibernate相关的Java类库。Hibernate是一个流行的开源对象关系映射(ORM)框架,它允许开发者用面向对象的方式来处理数据库操作,简化了Java应用程序与数据库之间...
本文将指导您在 Eclipse 环境中使用 Hibernate,包括下载和安装 Hibernate、配置 Hibernate、生成实体类和 DAO 类、添加映射资源等步骤。 下载和安装 Hibernate 首先,您需要下载 Hibernate 并将其添加到项目中。...
### Hibernate的核心接口与类 在探索Hibernate框架的过程中,掌握其核心接口与类是至关重要的一步。Hibernate作为一种流行的Java持久层框架,提供了丰富的API来简化对象关系映射(ORM)。本文将详细阐述Hibernate的...
本文将围绕“Hibernate【添加、删除、更新】”这一主题,深入探讨如何使用Hibernate进行数据的添加、删除与更新操作。 ### 添加操作 在Hibernate中,添加新记录通常涉及创建实体类的对象,并使用Session接口的`...
Hibernate3 是一个强大的Java持久化框架,它允许开发者将数据库操作与业务逻辑解耦,使得应用程序的开发更为简便。这个“hibernate3全部jar包:hibernate3.jar.zip”包含了所有必要的库文件,方便用户一次性下载并...
### 详解Hibernate与WebService结合使用的知识点 #### 一、Hibernate简介 Hibernate是一个开源的对象关系映射(ORM)框架,它提供了强大的数据持久化机制。通过使用Hibernate,开发人员可以将面向对象模型映射到...
Spring Hibernate 实现动态替换表名(分表)的方法 ...通过使用 Hibernate 拦截器,我们可以轻松地实现动态替换表名,而无需修改已有的代码。这种方法简单、安全、可维护,非常适合大型项目中的数据库操作。
最近公司的低代码开发平台数据中心需要重构,需要在页面上创建表模型添加修改字段。涉及到动态生成表结构,动态生成模型实体类动态查询表字段等等,经过调研发现hibernate在这方面是很方便的,调用内置API就能完成...
在Java Web开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。Struts是MVC(模型-视图-控制器)框架,用于处理HTTP请求,而JSP(JavaServer Pages)则用于创建动态网页。...
《Hibernate反向工程模板的深度解析与应用》 在Java Web开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。其中,反向工程(Reverse Engineering)是Hibernate提供的一项功能,它...
在动态树的实现中,Prototype可以帮助我们更方便地找到DOM元素,监听事件,以及动态修改HTML结构,比如添加或删除树节点。 接下来,`div`和`css`是构建动态树的UI层关键。`div`是HTML中的一个块级元素,常用来组织...