请教:关于主键改名

根据反射得到一个hibernate实体的主键
&&在很多地方都需要知道实体的名字,以便于抽象类对具体类的统一处理。如果设计时所有实体统一使用id,那就可以避免不必要的麻烦,否则如果有的实体PK叫id,有的实体PK叫userid,那在做sql语句统一操作时就比较麻烦了,硬编码是我们应该避免的。所以这里提供了一段小程序,供抽取那些使用annotation的实体pk。
&public static String getPKName(Class
entityClass) {
&&Field[] fields =
entityClass.getDeclaredFields();
&&for (Field f : fields)
&&&Annotation[]
annotations = f.getAnnotations();
(annotations.length &= 0) {
&&&&String
name = f.getName();
&&&&String
setMethodName = "get"
StringUtils.left(name, 1).toUpperCase()
StringUtils.substring(name, 1);
&&&&&Method
method = entityClass
&&&&&&&.getDeclaredMethod(setMethodName);
&&&&&annotations
= method.getAnnotations();
catch (Exception e) {
do nothing.
(Annotation anno : annotations) {
(anno.toString().contains("@javax.persistence.Id()"))
&&&&&return
f.getName();
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。MSSQL基础 &&&&最新内容
MSSQL基础 &&&&随机内容初学者课程:|| |
| 知识库: |
培训:|||| |
查看: 2084|回复: 4
请教主键生成规则
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
请问有哪位高手知道po_praybill(请购单头)的cpraybillid(请购单id)和vpraycode(请购单编号)以及po_praybill_b(请购单体)的cpraybill_bid(请购单体id)的生成规则是什么啊?谢谢
先把那ID设置成主键id,在设置其自动增长是多少
设置成主键的id不用手动录入 你录入表内其他数据时 系统就根据你设置的自动增长值自动生成
能说的具体一点吗?不是很明白
还有哪位高手知道吗?
难道没人知道吗?
Powered byselect COLUMN_NAME from INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
WHERE CONSTRAINT_NAME=(select CONSTRAINT_NAME from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE='PRIMARY KEY' AND TABLE_NAME='表的名字')
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:139263次
积分:1713
积分:1713
排名:第18877名
原创:44篇
转载:37篇
评论:22条
(1)(1)(1)(2)(1)(1)(1)(2)(1)(1)(1)(3)(3)(2)(4)(12)(2)(3)(2)(1)(1)(6)(2)(3)(2)(1)(1)(1)(2)(5)(5)(1)(3)(1)(2)问题补充&&
本页链接:
xec sp_rename &#39.A'table_name, 'B' ,'column'
更改列名属于更改表定义,且更改列名不能直接更改,所以:step1:先把A列删去alter table 表名
drop column Agostep2:再加入B列,其类型当然同Aalter table 表名
add column B 类型go
tryYouBestTo&
额,还从来木有酱紫的需求呢,占个座,应该类似alter table dd modify column 列名 后面的就不知道了,【极品飞鸽】
sp_rename 释义:更改当前**库中用户创建对象(如表、列或用户定义**类型)的名称语法如下:
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name' [ , [ @objtype = ] 'object_type' ]参数:
1.[@objname =] 'object_name' 是用户对象(表、视图、列、存储过程、触发器、默认值、**库、对象或规则)或**类型的当前名称。如果要重命名的对象是表中的一列,那么 object_name 必须为 table.column 形式。如果要重命名的是索引,那么 object_name 必须为 table.index 形式。object_name 为 nvarchar(776) 类型,无默认值。
2. [@newname =] 'new_name' 是指定对象的新名称。new_name 必须是名称的一部分,并且要遵循标识符的规则。newname 是 sysname 类型,无默认值。
3. [@objtype =] 'object_type' 是要重命名的对象的类型。object_type 为 varchar(13) 类型,其默认值为 **LL,可取下列值。
只能更改当前**库中的对象名称或**类型名称。大多数系统**类型和系统对象的名称不能更改。
重命名视图时,sysobjects 表中有关该视图的**将得到更新。重命名存储过程时,sysobjects 表中有关该过程的**将得到更新。
每当重命名 PRIMARY KEY 或 UNIQUE 约束时,sp_rename 都会自动为相关联的索引重命名。如果重命名的索引与 PRIMARY KEY 约束相关联,那么 sp_rename 也会自动重命名主键。修改列A名为B:sp_rename 'table1.colname','B','A'
Baby_原來&
猜你感兴趣

我要回帖

 

随机推荐