Hibernate学习篇02——Hibernate formula
来源:互联网 发布:淘宝五星好评 编辑:程序博客网 时间:2024/05/14 23:50
formula是配方的意思
formula里必须是纯sql语句,不能是hql语句。
Hibernate在实现formula的时候实际上是使用子查询来查询的。
表结构
drop table user1;create table USER1( ID VARCHAR2(32) primary key, USERNAME VARCHAR2(32), PASSWORD VARCHAR2(32), NAME VARCHAR2(32));insert into user1 (id,username,password,name) values ('8a8703de51d2e86e0151d2e870690000','zhangsan','111111','zs');insert into user1 (id,username,password,name) values ('8a8703de51d2e45c0151d2e45de00000','lisi','222222','ls');commit;
User.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.masteringhibernate.a02formula"><class name="User" lazy="true" table="USER1"><id name="id"><generator class="uuid"/></id><property name="username" /><property name="password" /><property name="name" /><!-- the character '(' and ')' is required --><property name="usernameAndPassord" formula="(select username||password from user1 u where u.id = id )" /></class></hibernate-mapping>
User.java
package com.masteringhibernate.a02formula;public class User {private String id;private String username;private String password;private String name;private String usernameAndPassord;public String getUsernameAndPassord() {return usernameAndPassord;}public void setUsernameAndPassord(String usernameAndPassord) {this.usernameAndPassord = usernameAndPassord;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
Test.java
package com.masteringhibernate.a02formula;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class Test {private static SessionFactory sessionFactory;public static void main(String[] args) {init();select();}private static void init() {// configure() must be invokedConfiguration configuration = new Configuration().configure("com/masteringhibernate/a02formula/hibernate.cfg.xml");sessionFactory = configuration.buildSessionFactory();}private static void select() {Session session = sessionFactory.openSession();Query query = session.createQuery("from User");List<User> list = query.list();for (User user : list) {System.out.println("id:" + user.getId() + "\t\tusername:"+ user.getUsername() + "\t\tpassword:" + user.getPassword()+ "\t\tname:" + user.getName() + "\t\tusernameAndPassord:"+user.getUsernameAndPassord());}session.close();}}Hibernate: select user0_.id as id0_, user0_.username as username0_, user0_.password as password0_, user0_.name as name0_, (select user0_.username||user0_.password from user1 u where u.id = user0_.id ) as formula0_ from USER1 user0_
id:8a8703de51d2e86e0151d2e870690000 username:zhangsanpassword:111111name:zsusernameAndPassord:zhangsan111111
id:8a8703de51d2e45c0151d2e45de00000 username:lisipassword:222222name:lsusernameAndPassord:lisi222222
从上面的log中我们可以看出,usernameAndPassord是作为子查询单独作为一个伪列存在的。
0 0
- Hibernate学习篇02——Hibernate formula
- hibernate @Formula
- Hibernate 3中的formula
- Hibernate 3中的formula
- hibernate 之formula
- hibernate的formula
- hibernate的formula
- Hibernate @Formula 攻略
- Hibernate 3中的formula
- hibernate mapping formula
- hibernate的formula
- hibernate的formula .
- Hibernate @Formula 攻略
- hibernate @Formula 使用方法
- hibernate的formula
- Hibernate @Formula范例
- Hibernate @Formula 用法
- Hibernate @Formula 攻略
- edu round 9 A-Grandma Laura and Apples
- jquery源码解析
- bzoj2648 SJY摆棋子
- 用编程来判断系统是大端还是小端
- MapReduce两种主要的后台程序-jobtracker和tasktracker
- Hibernate学习篇02——Hibernate formula
- ios 代码跳转 定位设置 系统设置 openURL
- 约瑟夫
- 彻底弄懂oracle硬解析、软解析、软软解析
- 从Log4j迁移到LogBack的理由
- 请谨慎使用ioComp 控件开发
- java小小工具第二弹 画图
- android view动画类型
- 源码一