关于用hibernate获取某个数据库中的主键的所有的值的方法

来源:互联网 发布:云创客淘宝采集软件 编辑:程序博客网 时间:2024/06/05 10:21

这个我找了好久才找到应该咋做的,没人教只能自学的悲惨历程,所以打算写出来记录下方便自己和广大跟我一样的初学者找。

hibernate不是有个方法是通过主键获得这个主键那一列的值的么,类似这样:

Shop shop = (Shop) session.get(Shop.class, num);

这里的Shop是我的对象-映射文件的类名,session是会话,num就是主键值,

然后的话,由于一个数据库的主键值会有增删改等操作,主键的长度以及主键的值都会有变化,于是我就在想,是不是有方法可以直接获得全部的值,然后把这些值放进一个集合中,然后通过下标和for循环去循环输出获得的主键的值,最后把这些主键的值传递给Shop shop = (Shop) session.get(Shop.class, num);,这样就可以获得全部的数据库中全部的主键所对应的全部行的值。然后就找到了这个方法:

List<Object> list = session.createSQLQuery("SELECT SID FROM shop").list();

这里的SID是shop表中的主键,shop就是表,然后这句话的意思就是查询shop表中SID主键,并且把查到的值存放到list集合中去。然后就可以通过

for (int i = 0; i < list.size(); i++) {

int num = (int) (list.get(i));//这里的list返回的是Object对象,所以要强转为int对象
// 获取刚才创建的num作为SID主键的对象
Shop shop = (Shop) session.get(Shop.class, num);
System.out.println(shop);
}

去获得并输出全部主键所对应的全部行的值啦。

写的内容仅仅是为了记录我遇到的问题以及找到的方法,可能帮不到你,所以不喜勿喷喜请点赞哦。0.2333333333.

阅读全文
0 0
原创粉丝点击