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

来源:互联网 发布:ai软件免费下载 编辑:程序博客网 时间:2024/06/02 01:37

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

  1. createtable TLOGIN1
  2. (
  3.   id       NUMBERnotnull,
  4.   loginname VARCHAR2(255),
  5.   username VARCHAR2(255),
  6.   password VARCHAR2(255),
  7.   picurl   VARCHAR2(255)
  8. )
  9. tablespaceUSERS
  10.   pctfree10
  11.   initrans1
  12.   maxtrans255
  13.   storage
  14.   (
  15.     initial64K
  16.     next1M
  17.     minextents1
  18.     maxextentsunlimited
  19.   );

 

采用反向工程时生成




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

 

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

 

-- Create/Recreateprimary, unique and foreign key constraints

  1. alter table TLOGIN1
  2.   add constraint ID primary key (ID)
  3.   using index
  4.   tablespace USERS
  5.   pctfree 10
  6.   initrans 2
  7.   maxtrans 255
  8.   storage
  9.   (
  10.     initial 64K
  11.     next 1M
  12.     minextents 1
  13.     maxextents unlimited
  14.   );

 

 

 



如有疑问或好的建议:欢迎留言和发邮件至笔者fzb_xxzy@163.com

 

 

 

 


0 0
原创粉丝点击