浏览 8830 次
锁定老帖子 主题:关于数据字典的糊涂问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-04-26
<class name="xxx.Sex" table="SEX"> <id name="value" unsaved-value="null" > <generator class="assigned" /> </id> <property name="label" not-null="true" /> </class> <class name="xxx.Person" table="PERSON"> <id name="id"> <generator class="native" /> </id> <property name="name" /> <many-to-one name="name" class="xxx.Sex" column="sex_value" /> </class> 对于一个单独的"数据字典"这么做,似乎没有问题. 但是,我发现系统中有N多个这样的"数据字典",比方,20多个.他们每个字典的数量都不是特别多,比方一般是十个左右的数据.那么,为每个都建一个表似乎很浪费.我希望能够压缩到一张"数据字典表"中存储.即. <class name="xxx.Type" table="TYPE"> <id name="value" unsaved-value="null" length="80" > <generator class="assigned" /> </id> <discriminator column="subclass" force="true" /> <property name="label" not-null="true" length="80" /> <subclass name="xxx.Sex" discriminator-value="Sex" /> </class> 也就是说,我希望通过这种方式获取它的值列表 // hql select * from xxx.Sex // sql select * from Type where subclass = 'Sex' 但是,问题是,上面的映射并不能得到我想要的东西. 首先,这样的映射中 value 是 primary key,但我实际上需要的是 value 和 subclass 做联合主键. 其次,我如果使用 <composit-id> 那势必要将 subclass 暴露为一个属性.而这个 subclass 对我毫无意义. 再其次,我如果引入一个我并不需要的 id 作为主键,然后在 <many-to-one> 中以 property-ref 参考 value 值,这个时候会得到一个莫名其妙的 property-ref not found 异常(经查证,这是一个bug,在3.0以上版本得到修正) 有没有谁碰见过这种妖怪问题? 好像这样的需求并不妖怪吧,我只是希望discriminator column="subclass" force="true"这样的东西能够加入主键而已. by the way. 有没有人知道,如何能够让 type="year" (mysql所支持的日期类型)的 property 正常生成我想要的 DDL. 请原谅我的执着,我总觉得,如果能够直接 ant ddl 得到我想要的 ddl ,那是一件很惬意的事情,而不是每次生成了之后都很郁闷的去手工修改得到 ddl . 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-08-23
楼主解决了吗?我也遇到这个问题了
|
|
返回顶楼 | |
发表时间:2006-08-23
我公司的字典数据是有排号的
男,table1,10001 女,table1,10002 办公室,table2,20001 开发办,table2,20003 总经理,table3,:30001 。。。。。。。。 用一个表 |
|
返回顶楼 | |
发表时间:2006-08-23
我们的有一个分类表,还有一个属性表,关联起来做不到,因为在业务表中并没有保存分类表的ID
|
|
返回顶楼 | |
发表时间:2006-08-25
抛出异常的爱 写道 我公司的字典数据是有排号的
男,table1,10001 女,table1,10002 办公室,table2,20001 开发办,table2,20003 总经理,table3,:30001 。。。。。。。。 用一个表 用两张表,一表是字典表的描述表,另一个是字典代码表,存储所有字典代码的信息。字典代码表中有一个字典表的外键,用以区分不同的字典表代码。当然字典表还可以建立父子关系,这个大同小异。 |
|
返回顶楼 | |
发表时间:2006-10-16
stamen 写道 抛出异常的爱 写道 我公司的字典数据是有排号的
男,table1,10001 女,table1,10002 办公室,table2,20001 开发办,table2,20003 总经理,table3,:30001 。。。。。。。。 用一个表 用两张表,一表是字典表的描述表,另一个是字典代码表,存储所有字典代码的信息。字典代码表中有一个字典表的外键,用以区分不同的字典表代码。当然字典表还可以建立父子关系,这个大同小异。 其实只要字典描述表中加一个描述记录代码的字段就行了,可以为不同类型的字典记录分类;同时加一个父记录的代码字段可以形成树型结构 |
|
返回顶楼 | |
发表时间:2006-10-18
能用一张表的数据..建议还是放一张表...速度会快一点...
|
|
返回顶楼 | |
发表时间:2006-10-18
我建议分表,不喜欢使用subclass。这样逻辑清晰,也方便维护。
|
|
返回顶楼 | |