Hibernate中引用View的解决方案_来自一网友

Hibernate 优化技术之调用视图(View)和存储过程(Procedure) 关于hibernate优化之使用视图和存储过程 阅读详情
 

一、思路
问题:
以往用Hibernate处理View时发生的困难主要集中在这两方面:
View是没有主键
由于View是由select语句生成,所以不存在任何主键。也就无法对其映射。
Hibernate必须对要操作的表进行po封装
Hibernate要求对数据库的操作都是通过pojo映射来实现的。也就是说无法对某个View直接读取而不对其进行映射。

如果强制用hibernate反转,会将所有的字段变成一个复合主键,关键是根本查不出数据来!
解决:
要解决以上问题,我采取一下方案:
在建立View的时候生成类似主键的字段,通过其他手段建立类似主键的字段。 并不需要另外建立这个主键!!!

在用Hibernate反转后,将复合主键po文件中构建器及geter/seter拷贝至主po文件中。同时修改相应的hbm.xml文件,手动随便把任一字段改为主键即可。 
二、实现
建立视图

代码
  1. create or replace view v_user_perm   
  2. (id, userid, moduleid)                              其实id并不需要!
  3. as   
  4. select rownum,a.id,c.id   
  5. from sysuser a,user_perm b,module c   
  6. where a.id=b.userid    
  7. and b.moduleid=c.id  

这个视图是从两个表中分别取出id。
建立hbm.xml :

代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">  
  3. <hibernate-mapping>  
  4. <class name="com.fulong.journal.cad.po.perm.VUserPerm" table="V_USER_PERM" schema="JCAD">  
  5. <id name="id" column="ID" type="long">        <column name="JHDM" length="14" />
        <generator class="assigned" />
  6. </id>  
  7. 随便挑以下一个属性作主键即可  
  8. <id name="userid" column="USERID" type="string" length="32" not-null="true">
  9.           <generator class="assigned" />
  10. </id>  
  11. <property name="moduleid" column="MODULEID" type="string" length="32" not-null="true"/>  
  12. </class>  
  13. </hibernate-mapping>  

 注意:
view一般用在小涉及到多个表的组合查询时用到
新买的USB无线网卡插上没反应?保姆级排查指南:从设备管理器到网络列表 本文提供USB无线网卡无法识别的全流程排查手册,涵盖硬件检测、驱动管理和网络配置三大维度。重点解析设备管理器中的设备状态诊断和驱动解决方案,特别适用于Realtek芯片的无线网卡(如RTL8188GU、RTL8812BU等),帮助用户快速解决网卡插上无反应的问题。 阅读详情

相关推荐

基于图神经网络的社交网络虚假账号检测系统 (Graph-based Fake Account Detection System, GFADS)

FOLLOWSRETWEETSSHAREDCOMMENTSLIKESMENTIONSUseruser_idusernamejoin_datebioavatar_urllocationverifiedis_fakeLOAD CSV这是决定模型性能的关键环节,需结合和。XXedge_indexy新账号缺乏历史数据和丰富关系。全网图可能包含数亿节点和数十亿边,难以直接训练。社交网络是动态变化的,虚假账号策略也在不断进化。获取大规模、高质量的真实/虚假账号标注数据非常困难。

Deng945201314的博客 1481

hibernate 视图无主键,联合主键的使用

hibernate 视图无主键,联合主键的使用 使用hibernate时,视图无主键的时候会报异常,随意使用一个字段作为主键,在查询操作时,如果该字段不是unique的,则会出现数据不准确的问题,这个时候可以考虑使用联合主键 创建一个包含联合主键的类,并在类上注释@Embeddable /** * user_role视图的联合主键 */ @Embeddable @Setter @Getter public class UserRoleCompositeId implements Serializable

kaili_0230的博客 601

ARS408毫米波雷达数据解析避坑指南:从硬件连接到Python处理

本文提供了ARS408毫米波雷达从硬件连接到Python数据处理的完整实战指南。针对串口通信不稳定、数据解析错误等常见问题,详细解析了硬件连接方案选择、串口数据高效读取策略、二进制协议解析的位操作技巧,并给出了坐标转换、目标跟踪及实时可视化的代码实现,帮助开发者快速搭建稳定的雷达数据处理流水线。

weixin_29091105的博客 149

HIBERNATE VIEW MAPPING

  因为今天有个报表需要做.比较复杂.用以前的办法就是查两次,然后根本两次的结果进来组合.这种办法的效果不高.而且很难维护.  在上峰指点下,决定用VIEW先查出数据.再通过一个REPORTBEAN进行映射.可是用JPA还没有用过VIEW MAPPING.感觉应该不容易.于是上HIBERNATE官网上看一些资料.觉得可行.再查了一下JPAPI,也有相关记录.action.  view ->

[roccat-Java专栏] 1233

【数据降维】数据降维方法分类

数据降维基本原理是将样本点从输入空间通过线性或非线性变换映射到一个低维空间,从而获得一个关于原数据集紧致的低维表示。 数据降维工具箱drtoolbox中众多算法,这里简单做个分类。 因为很多并没有仔细了解,在此次只对八种方法做分类:主成分分析(Principal Component Analysis,PCA)、线性判别分析(Linear Discriminant Analysis,LDA)、等

小魏的修行路 6万+

三维视觉智能焊接系统:免示教技术的工业应用实践

本文深入探讨了三维视觉智能焊接系统中免示教技术的工业应用实践。该系统通过三维视觉相机实时扫描工件,自动识别焊缝并生成轨迹,将产线换型时间从数小时缩短至几分钟,显著提升了生产柔性。文章详细解析了其核心硬件、算法及工厂部署流程,并展望了与数字孪生、工艺智能化融合的未来趋势。

weixin_29091105的博客 432

Hibernate映射视图View

create or replace view v_memo as select rownum as sadid,m.sadprf as sadprf,m.sadfrm as sadfrm,m.sadadm as sadadm,m.sadagt as sadagt,m.sadsty as sadsty,m.sadbde as sadbde,m.sadmch as sadmch,m.sadcur ...

想成为工程师的码农 368

数学建模:相关性分析学习——皮尔逊(pearson)相关系数与斯皮尔曼(spearman)相关系数

相关性分析:求解相关系数并绘制热力图进行对比

weixin_67565775的博客 8万+

hibernate 查询view值覆盖,生成重复数据

问题背景: 两个表A,B,B是detail表,A一对多B,使用A的id关联,为了方便查询detail数据。 正常情况:多条A数据相同但不同B数据不同。 异常情况:多条数据,A数据相同,B数据也相同。 问题分析: <id>设置成了不唯一字段,而Hibernate认为它是唯一的,导致了查询出的两条数据有相同的B字段的值时,Hibernate直接复用了第一条查出的数据,因为它认为第...

王仁一的博客 430

从零构建机械臂规划栈:Pinocchio、OMPL与Ruckig的工程化融合实践

本文详细介绍了如何从零构建机械臂规划栈,通过融合Pinocchio、OMPL和Ruckig三大核心组件,实现高性能的机械臂运动规划与轨迹生成。文章深入探讨了技术选型、工程架构设计及实战优化技巧,特别针对逆解、路径规划和轨迹平滑等关键环节提供了实用解决方案,适用于工业场景中的高实时性需求。

weixin_29072299的博客 433

PCIe协议之 Equalization篇 之 谈谈几种模式

对于两端有能力最高支持 32 GT/s 及以上速率的设备,如果把目标速度设置为 8 GT/s 或 16 GT/s 速率,是不建议采用 Bypass-Equalization-to-Highest-Rate 模式的,即便采用了,也不会针对 8 GT/s 或 16 GT/s 的目标速率进行 EQ。对于支持 32 GT/s 及以上速率的设备,其可能根本无需工作在 8 GT/s 或 16 GT/s 速率,这时再针对 8 GT/s 或 16 GT/s 速率进行 EQ,多少有点浪费。

那么菜的博客 562

Hibernate中引用View的解决方案_来自一网友,在此表示谢谢

一、思路 问题: 以往用Hibernate处理View时发生的困难主要集中在这两方面: View是没有主键 由于View是由select语句生成,所以不存在任何主键。也就无法对其映射。 Hibernate必须对要操作的表进行po封装 Hibernate要求对数据库的操作都是通过pojo映射来实现的。也就是说无法对某个View直接读取而不对其进行映射。 解决: 要解决以上问题,我采取一下方案: 在建

黄瓜和土豆的专栏 2325

什么是数据挖掘?数据挖掘到底在解决什么问题?

本文我将借助5W1H的思想来带你从整体上了解一下数据挖掘。比如什么是数据挖掘为什么要做数据挖掘在哪些场景下用数据挖掘怎么做数据挖掘第一个问题,什么是数据挖掘?这个问题看似很简单,但似乎也很难有一个明确的答案。如果非要给数据挖掘一个定义的话,那么我认为数据挖掘就是寻找数据中隐含的知识,并用于产生商业价值。也就是说它是我们在数据中,尤其是在大量的数据中找到一些有价值,甚至是非常有价值的东西的一种手段。

m0_64336780的博客 1万+

hibernate mysql8配置_Hibernate + proxool 初级配置(Hibernate3+MySql 8小时)

网上找了一些关于解决 Hibernate3 + MySql 8小时的问题,好多网友都建议用 proxool也查找了一些相关的文章,需要做些准备,首先下载proxool,下载地址 : 点我下载(也可以从我提供的附件里下载)然后将 lib文件夹下的两个 .jar文件 拷贝到 项目的 lib文件夹中。现将我自己配置的代码粘到这里,以备众不时之需。好,现在在src目录下,也就是与hibernate.cfg...

weixin_39593247的博客 335

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Hibernate4 buildSessionFactory与 ServiceRegistry

在用Hibernate4时会发现:     [java] view plaincopy   SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();     buildSessionFactory()废弃,相信很多人...

coffeehot的专栏 453

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Hibernate常见映射关系总结

ORM,全称是(Object Relational Mapping),即对象关系映射。说白了就是对象之间的关系的映射。         Hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.java)、映射文件(*.hbm.xml)和数据库配置文件(*.properties/*.cfg.xml),它们各自的作用如下。         映射类(*.java):类中属性会被

BENBENMENGMENG123的专栏 641

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Hibernate4中buildSessionFactory方法废弃解决

在用Hibernate4时会发现: [java] view plaincopy "font-size:18px;">SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();   buildSessionFact

LzwGlory的专栏 2765

Spring好处————网友总结

1.其实用spring最好的地方就是实现代码的复用。首先spring的设计原则是非侵入性的,就是实际业务逻辑代码中感觉不到spring框架的存在,spring只是在其中起到一个实例产生的作用,然后把实例分配给需要的对象。这种设计的好事就是可以随时随地的把某个业务逻辑很轻松的从整个系统中抽离出来再在无任何修改的情况下用到其他系统中去。然后就是切面的编程,这种设计是灵活的操作织入,例如你的某个业务逻辑是执行存款,存款这个业务之前之后都应该有某些附加操作,例如用户登录,检查余额,记录存款日志信息,但是这些不能够放

Kevin's blog 940

Hibernate4中buildSessionFactory方法废弃问题。

在用Hibernate4时会发现: SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); buildSessionFactory()废弃,相信很多人会觉得为什么废弃这方法,查了网上的资料,综合如下: Hi...

iaiti的专栏 2万+

JSF+MYFACES+HIBERNATE+SPRING+ACEGI+A4J

没事找事干     近日,用了三个月的时候,结合三种开源框架,发现三者之间存在结合后的bug,有时候,会导致项目的无法起动,种种原因令你无从下手.现结合配置成功.  jsf+hibernate+spring是参照jw-0719-jsf而做的,并加入了acegi.做权限管理,在这里先感谢lingoosoft提供技术支持.由于现在没有服务器提供上传,所以无法上传.....如那位网友提供空间,请

yamiqi的专栏 1661

Hibernate - 分页引发的问题

前几天查看后台的日志时,发现常出现Hibernate的警告信息:WARN (org.hibernate.hql.ast.QueryTranslatorImpl:328) - firstResult/maxResults specified with collection fetch; applying in memory!在中文Google上搜了搜,没有找到什么有用的信息,之后在英文的Go...

weixin_34122604的博客 173

Hibernate映射不规则查询结果

今天看到网友 pistol, 发贴[url=http://www.iteye.com/topic/247943] hibernate的sqlQuery有没有setResultTransformer这个方法[/url], 大致是问如何为特殊返回结果的 Query 映射持久类。 由于hibernate3.2之前没有 setResultTransformer 这个方法。推荐你一个简单的办法。 ...

Raymond的Java世界 186

hibernate tools插件安装.

一: 安装hibernate tools 插件 通过在网上浏览查阅,总结并生成实体,最后整理出相信文档,希望能帮助更多的人. 其次,感谢部分网友提供详细资料.   下载: Hibernate tools :      1.      进入jboss主页: http://www.jboss.org/tools/download, 点击download,选择需要下载的jb

奋斗的小鸟专栏 1217

java hql 查询所有内容_Hibernate中使用HQLQuery查询全部数据和部分数据的方法实例...

对于我们学习的hql,我大概理解为就是一种查询的语言,它没有增加、删除、修改的作用,而对我们用来查询的操作,感觉用起来就是很简便,代码很少,很好理解一些。下面是查询操作的简单实例package com.lc.view;import java.util.iterator;import java.util.list;import org.hibernate.session;import org.hib...

weixin_35020039的博客 298

【实体 报错 】No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer a...

1 HTTP Status 500 - Could not write content: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid...

weixin_33971130的博客 637
上一篇: java.text.DecimalFormat()格式化输出数字
下一篇: ORACLE 自增序列SEQUENCE
memory_xj
博客等级 码龄24年 44粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值