您的位置:首页 > 其它

Hibernate:反向生成的pojo有两个的问题

2013-12-29 19:57 405 查看
Hibernate:反向生成的pojo有两个的问题

前言:利用Myeclipse反向创建POJO,一些表创建Xxx.java和Xxx.hbm.xml两个文件;但是有些表创建Ttt.java\TttId.java\Ttt.hbm.xml三个文件。一直比较无语,在MyeclipseDatabase Explorer和hibernate.cfg.xml中寻找很长时间原因。

说明一:

表的配置文件中没有指定主键,

Hibernate默认把表中所有字段认为是联合主键了。

说明二:

在演示hibernate练习的时候,我在生成ORM映射的时候,为什么会出现两个POJO类呢?

比如说我有一个数据库表biao 有字段id ,name ,sex ,我做这个映射的时候会自动生成两个POJO类,生成Biao.java和BiaoId.java文件,我看它们都是生成一个的啊,我想操作的时候是针对哪个类呢

------解决方案--------------------

采用自动生成时,插件会将组合主键或没有主键的表拆为两个Bo文件,分别用于存放主键与全部字段,后者包含前者。使用时用后者即Biao.java。

当有唯一主键时,生成时只有一个bo文件。

说明三:

组合主键的问题

解决:下面用实例说明

例如在Oracle中创建了Tlogin1数据库表。

-- Create table

createtable TLOGIN1
(
id NUMBERnotnull,
loginname VARCHAR2(255),
username VARCHAR2(255),
password VARCHAR2(255),
picurl VARCHAR2(255)
)
tablespaceUSERS
pctfree10
initrans1
maxtrans255
storage
(
initial64K
next1M
minextents1
maxextentsunlimited
);

采用反向工程时生成






且不论怎么改 反向生成 Myeclipse Database Explorer里的配置文件,都没有用。最后查询到是没有对表设置主键。

采用pl\sql Developer来创建(视图创建,查看的代码):

-- Create/Recreateprimary, unique and foreign key constraints

alter table TLOGIN1
add constraint ID primary key (ID)
using index
tablespace USERS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);



如有疑问或好的建议:欢迎留言和发邮件至笔者fzb_xxzy@163.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐