码迷,mamicode.com
首页 > 编程语言 > 详细

java开发中的那些事(2)-------给视图建立主键

时间:2014-07-27 11:30:42      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:学习记录   数据库   oracle   

原本我想可以更深的挖掘一下这个问题,但是越查感觉东西越多,我的脑子就越混乱,于是我果断的停止了,我还需要一个清晰的头脑以便于接下来的工作,最后还是记录下当前碰到并解决的问题,其它的再慢慢消化吧。


碰到的问题:

在hibernate反向生成oracle视图的过程中,发现hibernate将所有的字段变成一个联合主键,在创建了一个model对象的同时,还建了一个modelID的类,另外因为在当前框架中对数据库表的DAO层查询都是封装起来的,需要model和相应的id来做参数,于是我就纠结了,我发现,我需要给视图建立一个主键...


解决办法:

先不说其他的各种说法,用查到的以下方法,确实暂时解决了当前问题,例:

表stu:字段stuID,stuName,markId;

表mark:字段markID,markNum;

正常创建一个视图的写法:

select or replace view view_stuDetail
as
select s.stuName stuName,m.markNum stuMark 
from stu s,mark m
where s.markId=m.markID

而如果我们要给它加主键的话,改动也是非常小的:

select or replace view view_stuDetail(stuName,stuMark,CONSTRAINT id_pk PRIMARY KEY (stuName) RELY DISABLE NOVALIDATE)
as
select s.stuName stuName,m.markNum stuMark 
from stu s,mark m
where s.markId=m.markID
这样可以看出来了,只是加了一句话的事情,当然,这里只是随便写了两个数据库。


疑惑:

在查看的过程中发现了一下几个观点,也认为挺有道理的:

1、视图没有主键,只是用来查询的,并不用来储存,它的数据都是基表中带过来的;

2、视图没有主键,但是可以加上唯一索引;

那现在加的主键又是什么意思呢,它确实解决了我当前的问题啊



毕竟功力太浅,这方面好多东西欠推敲啊,不过这个当前确实也解决了问题,自然应该有它的道理,暂且记录下吧

bubuko.com,布布扣



java开发中的那些事(2)-------给视图建立主键

标签:学习记录   数据库   oracle   

原文地址:http://blog.csdn.net/marsmile_tbo/article/details/38150723

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!