hibernate mysql视图操作
hibernate对视图操作,首先建立数据库视图
视图v_invite:
create
view pintu.v_invite as
select
cp.user_id as be_user_id,
cai.activity_invite_id,
cai.person_id,
cai.person_name,
cai.be_person_id,
cai.activity_id,
cai.invite_time
from
ptcom.com_person cp,
ptcom.com_activity_invite cai
where
cp.person_id = cai.be_person_id
生成hibernate视图mapping映射
<hibernate-mapping>
<class name="com.test.pojo.entity.VComActivityInvite" table="v_com_activity_invite" catalog="pintu">
<composite-id name="id" class="com.test.pojo.entity.VComActivityInviteId">
<key-property name="beUserId" type="java.lang.String">
<column name="be_user_id" length="32" />
</key-property>
<key-property name="activityInviteId" type="java.lang.Long">
<column name="activity_invite_id" />
</key-property>
<key-property name="personId" type="java.lang.Long">
<column name="person_id" />
</key-property>
<key-property name="personName" type="java.lang.String">
<column name="person_name" length="45" />
</key-property>
<key-property name="bePersonId" type="java.lang.Long">
<column name="be_person_id" />
</key-property>
<key-property name="activityId" type="java.lang.Long">
<column name="activity_id" />
</key-property>
<key-property name="inviteTime" type="java.util.Date">
<column name="invite_time" length="19" />
</key-property>
</composite-id>
</class>
</hibernate-mapping>
对性实体POJO:VComActivityInvite
public class VComActivityInvite implements java.io.Serializable {
// Fields
private VComActivityInviteId id;
// Constructors
public VComActivityInvite() {
}
public VComActivityInvite(VComActivityInviteId id) {
this.id = id;
}
// Property accessors
public VComActivityInviteId getId() {
return this.id;
}
public void setId(VComActivityInviteId id) {
this.id = id;
}
}
对应视图数据体:VComActivityInviteId
public class VComActivityInviteId implements java.io.Serializable {
// Fields
private String beUserId;
private Long activityInviteId;
private Long personId;
private String personName;
private Long bePersonId;
private Long activityId;
private Date inviteTime;
// Constructors
public VComActivityInviteId() {
}
public VComActivityInviteId(Long activityInviteId) {
this.activityInviteId = activityInviteId;
}
public VComActivityInviteId(String beUserId, Long activityInviteId,
Long personId, String personName, Long bePersonId, Long activityId,
Date inviteTime) {
this.beUserId = beUserId;
this.activityInviteId = activityInviteId;
this.personId = personId;
this.personName = personName;
this.bePersonId = bePersonId;
this.activityId = activityId;
this.inviteTime = inviteTime;
}
// Property accessors
public String getBeUserId() {
return this.beUserId;
}
public void setBeUserId(String beUserId) {
this.beUserId = beUserId;
}
public Long getActivityInviteId() {
return this.activityInviteId;
}
public void setActivityInviteId(Long activityInviteId) {
this.activityInviteId = activityInviteId;
}
public Long getPersonId() {
return this.personId;
}
public void setPersonId(Long personId) {
this.personId = personId;
}
public String getPersonName() {
return this.personName;
}
public void setPersonName(String personName) {
this.personName = personName;
}
public Long getBePersonId() {
return this.bePersonId;
}
public void setBePersonId(Long bePersonId) {
this.bePersonId = bePersonId;
}
public Long getActivityId() {
return this.activityId;
}
public void setActivityId(Long activityId) {
this.activityId = activityId;
}
public Date getInviteTime() {
return this.inviteTime;
}
public void setInviteTime(Date inviteTime) {
this.inviteTime = inviteTime;
}
public boolean equals(Object other) {
if ((this == other))
return true;
if ((other == null))
return false;
if (!(other instanceof VComActivityInviteId))
return false;
VComActivityInviteId castOther = (VComActivityInviteId) other;
return ((this.getBeUserId() == castOther.getBeUserId()) || (this
.getBeUserId() != null
&& castOther.getBeUserId() != null && this.getBeUserId()
.equals(castOther.getBeUserId())))
&& ((this.getActivityInviteId() == castOther
.getActivityInviteId()) || (this.getActivityInviteId() != null
&& castOther.getActivityInviteId() != null && this
.getActivityInviteId().equals(
castOther.getActivityInviteId())))
&& ((this.getPersonId() == castOther.getPersonId()) || (this
.getPersonId() != null
&& castOther.getPersonId() != null && this
.getPersonId().equals(castOther.getPersonId())))
&& ((this.getPersonName() == castOther.getPersonName()) || (this
.getPersonName() != null
&& castOther.getPersonName() != null && this
.getPersonName().equals(castOther.getPersonName())))
&& ((this.getBePersonId() == castOther.getBePersonId()) || (this
.getBePersonId() != null
&& castOther.getBePersonId() != null && this
.getBePersonId().equals(castOther.getBePersonId())))
&& ((this.getActivityId() == castOther.getActivityId()) || (this
.getActivityId() != null
&& castOther.getActivityId() != null && this
.getActivityId().equals(castOther.getActivityId())))
&& ((this.getInviteTime() == castOther.getInviteTime()) || (this
.getInviteTime() != null
&& castOther.getInviteTime() != null && this
.getInviteTime().equals(castOther.getInviteTime())));
}
public int hashCode() {
int result = 17;
result = 37 * result
+ (getBeUserId() == null ? 0 : this.getBeUserId().hashCode());
result = 37
* result
+ (getActivityInviteId() == null ? 0 : this
.getActivityInviteId().hashCode());
result = 37 * result
+ (getPersonId() == null ? 0 : this.getPersonId().hashCode());
result = 37
* result
+ (getPersonName() == null ? 0 : this.getPersonName()
.hashCode());
result = 37
* result
+ (getBePersonId() == null ? 0 : this.getBePersonId()
.hashCode());
result = 37
* result
+ (getActivityId() == null ? 0 : this.getActivityId()
.hashCode());
result = 37
* result
+ (getInviteTime() == null ? 0 : this.getInviteTime()
.hashCode());
return result;
}
}
在操作中,对视图进行查询,引入查询条件:
String hql = "select count(*) from VComActivityInvite vca where vca.id.beUserId = '" + userId+"'";
return ((Number)vComActivityInviteDao.createQuery(hql).uniqueResult()).intValue();
父类 id 对应 <composite-id name="id" class="com.test.pojo.entity.VComActivityInviteId">
hibernate3.2对应统计数量返回LONG型,需转化如下
((Number)vComActivityInviteDao.createQuery(hql).uniqueResult()).intValue
hibernate mysql视图操作的更多相关文章
- MySQL 视图的基础操作(五)
1.为什么使用视图: 为了提高复杂SQL语句的复用性和表操作的安全性(例如:工资字段不想展示给所有能查看该查询结果的人),MySQL提供了视图特性.所谓视图,本质上是一种虚拟表,其内容与真实的 ...
- MySQL学习——操作视图
MySQL学习——操作视图 摘要:本文主要学习了使用DDL语句操作视图的方法. 了解视图 是什么 视图是从一个.多个表或者视图中导出的表,包含一系列带有名称的数据列和若干条数据行. 特点 视图不是数据 ...
- mysql视图的操作
一.创建视图的语法形式 CREATE VIEW view_name AS 查询语句 ; 使用视图 SELECT * FROM view_name ; 二.创建各种视图 1.封装实现查询常量语句的视图, ...
- Mysql 视图 游标 触发器 存储过程 事务
Mysql 视图 触发器 存储过程 游标 游标是从数据表中提取出来的数据,以临时表的形式存放在内存中,在游标中有一个数据指针,在初始状态下指向的是首记录,利用fetch语句可以移动该指针,从而对游标中 ...
- mysql 视图(view)
什么是视图 视图是从一个或多个表中导出来的表,是一种虚拟存在的表. 视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据. 这样,用户可以不用看到整个数据库中的数据,而之关心对自己有用的数据. 数 ...
- Mysql视图的作用及其性能分析
定义:视图是从一个或几个基本表导出的表,它与基本表不同,是一个虚表. 作用: 1.简化操作,不用进行多表查询. 2.当不同种类的用用户共享同一个数据库时,非常灵活,(用户以不同的 方式看待同一数据. ...
- MYSQL 基础操作
1.MySQL基础操作 一:MySQL基础操作 1:MySQL表复制 复制表结构 + 复制表数据 create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样 ...
- MYSQL视图的学习笔记
MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具 1. 视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...
- 深入解析MySQL视图view
阅读目录---深入解析MySQL视图view 创建视图 查看视图 视图的更改 create or replace view alter DML drop 使用with check option约束 嵌 ...
随机推荐
- centos磁盘挂载|centos虚拟机硬盘不够怎么办?|centos虚拟机硬盘的扩展
Centos6磁盘挂载 添加一块磁盘 分区,格式化,挂载新磁盘 磁盘挂载 df -lh fdisk -l fdisk /dev/sdb 这个命令执行后依次输 n p 回车 回车 w fdisk -l ...
- Java-1.6-并发包-集合
List相关 对于List并发包就只扩展了一个CopyOnWriteArrayList<E> Set相关 对于Set,并发包扩展ConcurrentSkipListSet<E> ...
- spark基础知识介绍(包含foreachPartition写入mysql)
数据本地性 数据计算尽可能在数据所在的节点上运行,这样可以减少数据在网络上的传输,毕竟移动计算比移动数据代价小很多.进一步看,数据如果在运行节点的内存中,就能够进一步减少磁盘的I/O的传输.在spar ...
- centos下查看python的安装目录
直接用python命令,打印sys的path即可: >>> import sys >>> print(sys.path) ['', '/usr/local/lib/ ...
- Nginx代理webSocket经常中断的解决方案, 如何保持长连接
背景 这天气够热的,要处理的事情也够多的.... 1 2 想看解决的,直接 ctrl+f搜索关键字‘配置点’ 开始前交代(想看原因的看这个,个人观点,不代表正确) 解说:今天用nginx反代通讯项目, ...
- 尚硅谷redis学习7-持久化AOF
AOF比RDB优点在于数据的实时性高,经过设置后最多只会损失一秒钟的数据,而RDB最多可能损失上次备份到此次DOWM机间的数据 原理 配置文件 设置同步频率 重启redis,测试,可以看到数据在关机重 ...
- [leetcode]股票题型123
122. Best Time to Buy and Sell Stock II Say you have an array for which the ith element is the price ...
- delphi 实现用户自定义通知(User Notification)
unit Form_Main; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, Sy ...
- mysql 的REPLAYCE语句
MySQL数据库insert和update语句引:用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句.言外之意,就是对数 ...
- python类中方法加单下划线、双下划线、前后双下滑线的区别
首先看一段代码: class Foo(): def __init__(self): print "__init__ method" def public_method(self): ...