Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于主键方式为assigned的几个修改及说明 #15

Open
GoogleCodeExporter opened this issue Jun 12, 2015 · 4 comments
Open

关于主键方式为assigned的几个修改及说明 #15

GoogleCodeExporter opened this issue Jun 12, 2015 · 4 comments

Comments

@GoogleCodeExporter
Copy link

如果是生成的表采用increment的方式,我相信单表的增、删、��
�、修都不会有问题;但是项目
中主键的方式好多都是要采用业务字段或业务字段的组合来��
�为主键,虽然这个不好,但是我所
参与的项目中经常是这样的情况。
如果是用业务字段的单个字段作为主键,这个时候用户需要��
�已实现生成主键的类,这个我做了
修改并增加了一个简单的模板生成类,用户只需要针对生成��
�的单主键生成类实现其中的主键生
成方法即可,这个时候也就是不管是单主键或者是多主键都��
�有主键生成方法,只是内容不一样
而已,见附件,经测试可以实现增、删、查、改功能。
如果是用业务字段的多个字段作为主键,原程序没有考虑到��
�主键需要采用对象,而不是其字段
类型了,这个就会产生我前面提到的生成了两个主键的问题��
�这个我也对生成模板作了修改,不
过因为时间关系,还没有测试,只是生成的代码中不会出现��
�前面上传的附件中的问题了。
我的数据库是SQLSERVER2008,因为当前项目中采用的是这个,我�
��用了这个作为测试,我不知
道测试的结果是否与数据库有关,我把我发现的问题以及修��
�记录了一下。

另外,我前面曾经使用过普元的EOS,我觉得RAPID-FRAMEWORK可以��
�其加入:
1、查询显示页面实现字段可配置性。
2、增、查、改页面每一行显示字段的数目,需要显示一些样�
��内容也可以实现配置性。

以下是两个附件:
1、单业务字段主键的模板文件:${className}Id.java@!compositeId
2、针对业务字段主键的修改记录
{本来是想自己做的,但我认为你肯定比我做得更好哦@_@}

最后建意如果在时间允许,还麻烦你在generator补充一些必要��
�Doc,毕竟我们要做DOC.
希望Rapid-Framework越来越好哦













Original issue reported on code.google.com by fengli...@gmail.com on 1 Oct 2009 at 3:12

Attachments:

@GoogleCodeExporter
Copy link
Author

多主键问题主要是有不同的dao实现,rapid现在由于要支持多个
web框架
(struts,struts2,springmvc)及dao层(spring_jdbc,hibernate,ibatis),所以一修
改需要动全
身。

所以这个也是比较烦恼的问题。

不过模板方面你可以编写属于自己的模板,rapid自带的模板主
要是为了你的修改方便,而且jsp
那一层的东西可能根本就不符合你的要求,所以无法全部适��
�。


${className}Id.java@!compositeId,我在Table对象中会增加
${className}Id.java@notCompositeId这个,就避免需要增加感叹号的问�
��了。然后仍然是原来
的意思,只要表达式是true,则生成文件.
因为这个是整Table的这些model修改相关的,所以直接给你们生�
��器的源码也是这个意思,开发
自己的模板及model对象.

不过你可以反馈过来,很通用的model属性,我会增加在rapid里�
��的,以后大家编写的模板都可
以在rapid运行.

increment主键的问题已经在guide.html里面说明了,一般是根据自�
��需要修改的,如有的人是使
用oracle的sequence

Original comment by bad...@gmail.com on 9 Oct 2009 at 1:46

@GoogleCodeExporter
Copy link
Author

在rapid-framework的基础之上,我将其修改为可以支持以下主键��
�型:
1、生成主键采用increment的数字类型
2、单业务字段主键、采用生成方式为assigned,非数字型,通��
�为字符串型,测试采用的是字符串类型进行
的测试
3、多业务字段作主键、主键生成方式采用assigned的,测试的��
�候采用的两个字符型的字段作主键
都可以实现其增、删、查、改功能

以下需要注意:
1、在生成主键采用increment的数字类型表的增、删、查、改操�
��,用户不需要对其作任何修改,直接使用
生成好的代码
2、采用单业务字段的主键生成模式,用户在生成后文件后,�
��要修改生成好的model目录的主键生成类
{className}Id.java中的主键生成方法generate
3、针对多业务字段作主键的,用户在生成后文件后,需要生�
��后的action目录中对应的Action类
{className}Action.java,修改其中的save()方法,根据实现情况,
生成多业务字段值。
4、如果数据库中有文件类型的字段,model目录中对应的java类�
��要将其生成的java.sql.Clob修改为
java.lang.String类型
5、根据表的主键类型,在generator.properties中设置正确的主键��
�成类型

详细修改参见附件
测试的为struts2+Hibernate3+spring

测试环境为Apache Tomcat/5.0.30+jdk1.5.0_18-b02

Original comment by fengli...@gmail.com on 12 Oct 2009 at 8:45

Attachments:

@GoogleCodeExporter
Copy link
Author

谢谢你的修改,不过由于还要考虑其它dao实现,后面有时间��
�再集成进来。

Original comment by bad...@gmail.com on 13 Oct 2009 at 2:33

@GoogleCodeExporter
Copy link
Author

Issue 27 has been merged into this issue.

Original comment by bad...@gmail.com on 25 Nov 2009 at 6:35

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant