- 浏览: 656887 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
HkEndless:
不好意思,请问这确定是回调机制吗。你的例子中只是将接口的实现类 ...
Spring CallBack回调机制介绍 -
hanmiao:
写的真乱啊,完全不知所云...
Java如何调用可执行文件和批处理命令 -
junia_1:
junia_1 写道 shock: ...
为什么要使用EJB -
junia_1:
shock:
为什么要使用EJB -
coollifer:
不错
SQL Server数据导入到Oracle中的方法
///////////////////////////////////////////////////////////////////////// import java.util.*; import java.sql.*; import org.hibernate.*; import org.hibernate.criterion.*; public class Main { public static void main(String[] args) { HibernateUtil.setup("create table Supplier ( id int, name VARCHAR);"); HibernateUtil.setup("create table Product ( id int, name VARCHAR, description VARCHAR, price double,supplierId int);"); prepareData(); Session session = HibernateUtil.currentSession(); Criteria crit = session.createCriteria(Product.class); crit.add(Restrictions.gt("price",new Double(1.0))); crit.addOrder(Order.desc("price")); List results = crit.list(); displayProductsList(results); HibernateUtil.checkData("select * from Supplier"); HibernateUtil.checkData("select * from Product"); } public static void displayProductsList(List list){ Iterator iter = list.iterator(); if (!iter.hasNext()){ System.out.println("No products to display."); return; } while (iter.hasNext()){ Product product = (Product) iter.next(); String msg = product.getSupplier().getName() + "\t"; msg += product.getName() + "\t"; msg += product.getPrice() + "\t"; msg += product.getDescription(); System.out.println(msg); } } private static void prepareData(){ Session session = HibernateUtil.currentSession(); Supplier supplier1 = new Supplier(); supplier1.setName("Supplier Name 1"); session.save(supplier1); Supplier supplier2 = new Supplier(); supplier2.setName("Supplier Name 2"); session.save(supplier2); Product product1 = new Product("Product 1","Name for Product 1", 2.0); product1.setSupplier(supplier1); supplier1.getProducts().add(product1); session.save(product1); Product product12 = new Product("Product 2","Name for Product 2", 22.0); product12.setSupplier(supplier1); supplier1.getProducts().add(product12); session.save(product12); Product product2 = new Product("Product 3", "Name for Product 3", 30.0); product2.setSupplier(supplier2); supplier2.getProducts().add(product2); session.save(product2); session.flush(); HibernateUtil.closeSession(); } } ///////////////////////////////////////////////////////////////////////// public class Product { private int id; private Supplier supplier; private String name; private String description; private double price; public Product() { super(); } public Product(String name, String description, double price) { super(); this.name = name; this.description = description; this.price = price; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Supplier getSupplier() { return supplier; } public void setSupplier(Supplier supplier) { this.supplier = supplier; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } } ///////////////////////////////////////////////////////////////////////// <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="Supplier"> <id name="id" type="int"> <generator class="increment"/> </id> <property name="name" type="string"/> <bag name="products" inverse="true" cascade="all,delete-orphan"> <key column="supplierId"/> <one-to-many class="Product"/> </bag> </class> </hibernate-mapping> ///////////////////////////////////////////////////////////////////////// import java.util.ArrayList; import java.util.List; public class Supplier { private int id; private String name; private List products = new ArrayList(); public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List getProducts() { return products; } public void setProducts(List products) { this.products = products; } } /////////////////////////////////////////////////////////////////////////
发表评论
-
hibernate Restrictions用法 MatchMode.ANYWHERE
2012-07-14 15:50 3945方法 说明 Res ... -
hibernate3 大批量更新/删除数据 (update/delete)
2011-11-10 12:15 1366Hibernate3.0 采用新的基 ... -
hibernate lazy(延迟加载)
2011-10-12 02:20 915hibernate lazy策略可以使用在: * < ... -
一些关于Hibernate延迟加载的误区
2011-09-12 23:13 887首先是第一个误区:延迟加载只能作用于关联实体 看到这个是 ... -
org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling
2011-08-12 19:17 1245Hi I am facing a problem wit ... -
Criteria Condition: Match Mode End
2011-07-02 11:05 982//////////////////////////// ... -
Criteria: Group By Criteria
2011-07-02 11:03 1332/////////////////////////////// ... -
Query Criteria Equal
2011-07-02 11:02 893/////////////////////////////// ... -
Criteria: Associations Sorting Criteria
2011-07-02 10:57 912//////////////////////////// ... -
hibernate的Query有没有setResultTransformer这个方法
2011-07-01 23:24 3083可以对原生SQL 查询使用ResultTransformer。 ... -
Hibernate中一级缓存、二级缓存及查询缓存的技术性总结
2011-06-21 17:31 1232一、 一级缓存 1. ... -
hibernate 保存 oracle 10g大数据字段
2011-06-14 04:01 1447Java代码 要点如下: ... -
Hibernate 错误原因总结
2011-06-14 00:10 14281、错误: object references an unsa ... -
MappingException提示Association references unmapped class错误的解决方法
2011-06-12 17:09 10出现如下错误信息时 Caused by: org.hibe ... -
Hibernate一对多关联映射的配置及其级联删除问题
2011-06-12 17:07 9首先举一个简单的一对多双向关联的配置: 一的一端:Quest ... -
Hibernate多对一关联映射原理、映射方法和数据的保存
2011-06-12 17:06 13Hibernate的多对一关联映射实现的基本原理就是: 在多 ... -
Hibernate一对多单向关联和双向关联映射方法及其优缺点
2011-06-12 17:05 11一对多关联映射和多对一关联映射实现的基本原理都是一样的,既是在 ... -
inverse = “true” example and explanation
2011-06-11 22:18 1119In Hibernate, only the “relatio ... -
ibatis和hibernate区别
2011-04-13 17:34 827ibatis:sql需要自己写 hibe ... -
Hibernate StackOverFlowError 异常出现的原因
2011-04-13 16:51 1274引起StackOverFlowError异常的一般是因为在程序 ...
相关推荐
criteria.addOrder(Order.asc("creationDate")); ``` 4. **分组和聚合**: ```java criteria.setProjection(Projections.groupProperty("country")); criteria.setProjection(Projections.count("id")); ``` ...
criteria.addOrder(Order.asc("creationDate")); ``` 4. 使用投影进行聚合操作: ```java ProjectionList projections = Projections.projectionList(); projections.add(Projections.count("id"), ...
- **Criteria.addOrder(Order order)**:用于添加排序规则。 #### 三、示例解析 接下来,我们将逐一分析给定的四个HQL查询语句对应的Criteria API实现,并指出其中的问题所在。 ##### 1. HQL: "from A orderby ...
在Java世界中,Criteria API是JPA(Java Persistence API)的一部分,用于构建动态、类型安全的查询。这个“Criteria标准化对象查询小例子”提供了一个实际应用Criteria API的示例,帮助开发者理解如何利用它来执行...
criteria.addOrder(Order.desc("id")).addOrder(Order.asc("createTime")); ``` 这将按照 `id` 字段降序排列,然后按 `createTime` 字段升序排列。 4. 分页查询: 使用 `setMaxResult` 设置每页记录数,`...
- **Sort Order**:设置查询结果的排序方式,通过`Criteria`的`addOrder(Order)`方法实现。 - **FlushMode**:`Criteria`还允许设置`FlushMode`,控制何时将缓冲区中的更改同步到数据库,影响事务管理。 #### 三...
criteria.addOrder(Order.asc("username")); ``` 5. **分组(GroupBy)和聚合函数(Projections)** Criteria API也支持分组和聚合操作。通过调用setGroupBy()方法进行分组,使用Projections类的聚合函数,如...
criteria.addOrder(Order.desc("price")); List<Books> list = criteria.list(); ``` 这里的`Order.desc("price")` 表示按价格降序排序。 #### 六、分页查询 在进行大量数据查询时,分页是非常重要的功能。在...
criteria.addOrder(Order.asc("age")); ``` ### 5. 连接查询 Criteria API支持关联查询,通过`createCriteria(String associationPath)`方法可以添加子查询,这类似于SQL中的JOIN操作。例如,查询用户及其所在的...
criteria.addOrder(Order.asc("username")); ``` 分页查询则可以通过`setFirstResult(int firstResult)`和`setMaxResults(int maxResults)`实现。例如,获取第10到20条记录: ```java criteria.setFirstResult(10)...
`Criteria`接口提供了添加查询条件(`add(Criterion)`)、设置排序(`setOrder(Order)`)以及设置查询范围(`setFirstResult(int)`和`setMaxResults(int)`)等方法。 DetachedCriteria是Criteria的一个扩展,它允许...
criteria.addOrder(Order.desc("groupId")); ``` 3. **分页**:为了提高性能和控制查询结果的数量,`Criteria`提供了分页查询的支持,通过设置`setFirstResult`和`setMaxResults`方法实现。 ```java criteria....
- **设置排序**:通过`addOrder(Order.asc("field"))`或`addOrder(Order.desc("field"))`方法设置升序或降序排序。 - **设置联合查询的抓取模式**:使用`setFetchMode(String field, FetchMode mode)`设置联合查询的...
criteria.addOrder(Order.asc("username")); ``` 6. **关联查询(Joins)** - `createCriteria()`方法可以用于创建子查询,处理多对一、一对多等关联关系。 ```java criteria.createCriteria("roles").add...
4. **Order**:`org.hibernate.criterion.Order` 接口用于指定排序规则。 #### 三、创建 Criteria 查询实例 1. **创建 Criteria 实例**: ```java Criteria crit = sess.createCriteria(Cat.class); ``` 2. **...
criteria.addOrder(Order.asc("property")); criteria.setFirstResult(10); criteria.setMaxResults(20); ``` ### 6. 结果集转换 Criteria API 还支持将查询结果转换为其他对象,比如 `List`、`Map` 或自定义的...
5. **Order**: 用于设置排序条件,可以指定升序或降序排列。 以下是一个简单的示例,展示如何使用Criteria API查询User实体中所有名为"John"的用户: ```java Session session = sessionFactory.openSession(); ...
criteria.addOrder(Order.desc("id")); ``` 4. **分组(Projections)**:定义查询结果的返回字段,可以是单个属性、计算字段或者聚合函数。例如,统计不同城市的用户数量: ```java criteria.setProjection...