Hibernate多表、多视图查询问题!

wnhoo 2008-06-06 10:27:32
环境:
MSSQL+SP4
Hibernate 3.X
JDK 1.5

问题:
表 UserInfo,FlagInfo
视图 V_BuyGlide

1:查询视图,视图没有做映射

请教各位一个问题:
List result = null;
try {
Session s = HibernateSessionFactory.getSession();
Query q = s.createSQLQuery("Select * from V_BuyGlide");
result = q.list();
s.close();
} catch (Exception e) {
e.printStackTrace();
}
Hibernate: Select * from V_BuyGlide
09:02:32,953 ERROR JDBCExceptionReporter:72 - 对象名 'V_BuyGlide' 无效。

V_BuyGlide 数据库中视图,上面SQL语句在数据库中正常执行!但是为什么上面执行会报错呀!

2、返回表和视图的列
Select a.*,b.FlagName from V_BuyGlide a,FlagInfo b where a.BuyFlagID=b.FlagID

(1)怎么取得返回结果?
(2)如果要将结果映射成为POJO对象,怎么办?

3、查询统计值
Select Count(*) from V_BuyGlide

怎么取得统计的值?

4、数据库特有信息查询
Select getDate()

取得数据库所在服务器的时间,怎么弄?

...全文
232 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ee4456 2008-06-06
  • 打赏
  • 举报
回复

1:查询视图,视图没有做映射

对象名无效,那么你有对应的pojo吗?有没有配置这个视图的对象V_BuyGlide

2.要返回指定的行列
如果你返回的没有对应的POJO,那么你得到的每一行的直都是一个object[]的对象数组,你可以一个一个转回来到
你所知道的相应的类型

3.统计函数要写个指定的值
跟第2个问题差不多,只不过上边是多个那么就是object[],也是返回的list中,每个元素都是object[].那么相对的这个count(*)就明显是一个object了,那么你再把这个对象转成你想要的数据就OK了

4.获取服务器的时间 new java.util.Date();就可以
bufeng711 2008-06-06
  • 打赏
  • 举报
回复
1.首先查询视图跟查询表的一样的,没什么区别,你只要生成对应的视图映射就行。
2.要返回指定的行列,就要自己重新写个POJO类,这个类里面包含你要显示的列
具体写法 select (com.csdn.newBean) from V_BuyGlide a,FlagInfo b where a.BuyFlagID=b.FlagID
这个com.csdn.newBean 里面包含a里面的的所有变量和b里面的b.FlagName,等价于a.*,b.FlagName
public Class newBean
{
private a的变量;
private FlagName;
get....set...
}
hql语法跟sql还是有很大的区别滴

3.统计函数要写个指定的值
Session session = HibernateSessionFactory.getSession();
countStr = "select count(*) from V_BuyGlide" ;
Query query = session.createQuery(countStr);
return Integer.valueOf(query.list().get(0).toString());//返回的就是你想要的count(*)

4.获取服务器的时间 new java.util.Date();
qingting2016 2008-06-06
  • 打赏
  • 举报
回复
1:查询视图,视图没有做映射

//视图也需做映射 采用复合主键方式
qingting2016 2008-06-06
  • 打赏
  • 举报
回复
query.getString("列名");

跟jdbc差不多,
jdlsfl 2008-06-06
  • 打赏
  • 举报
回复
1、09:02:32,953 ERROR JDBCExceptionReporter:72 - 对象名 'V_BuyGlide' 无效。
这个可能是没有映射实体类吧
jdlsfl 2008-06-06
  • 打赏
  • 举报
回复
3、已经得到统计值了啊
jdlsfl 2008-06-06
  • 打赏
  • 举报
回复
4、select convert(char(10),getdate(),20) sdate,convert(char(8),getdate(),108) stime
yami251139 2008-06-06
  • 打赏
  • 举报
回复
sysDate吧好像
不过我一般用currenttime...
zidasine 2008-06-06
  • 打赏
  • 举报
回复
视图也需要做映射,有对应的pojo

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧