Hibernate代码生成用于非识别关系
我有以下的表结构,Hibernate代码生成用于非识别关系
TableA: aid int, (PK)
name varchar(255),
bid
表B是具有复合主键(BID,TID,中旬)
TableB: bid int, (PK)
tid int, (PK)
mid int, (PK)
name varchar(255)
当尝试生成代码使用休眠工具,通过在eclipse中添加它我得到的错误,“外键(TableA [TableB_TableBId])必须具有相同数量的列由主键引用(TableB [bid,tid,mid]”
由于这是一种非识别关系,我不想在TableA中添加其他列(tid和mid)。
有没有办法为这种场景生成代码。
我是否在生成时缺少其他配置?
注:我使用的Eclipse JUNO(1.5.0.20120614-1633)和Hibernate工具 “3.6.0.Final-v20130327-1513-B111”
更新: 试图用最新的Eclipse红月,有即使连接没有得到创建“阅读架构错误:'hibernate.dialect'必须设置时没有连接可用”即使我已经设置方言
回答:
我用Hibernate工具任务生成代码为您的表和pojos是按预期生成。
Create Table Table1(aid integer,
name varchar(255),
PRIMARY KEY (aid));
Create Table Table2(
bid integer,
tid integer,
mid integer,
name varchar(255)
PRIMARY KEY (bid,tid,mid));
ALTER TABLE Table2 ADD CONSTRAINT fk_rel FOREIGN KEY (bid) REFERENCES Table1(aid);
这里是POJO的
public class Table1 implements java.io.Serializable { private int aid;
private String name;
private Set<Table2> table2s = new HashSet<Table2>(0);
//getters and setters
}
public class Table2 implements java.io.Serializable {
private Table2Id id;
private Table1 table1;
private String name;
//getters and setters
}
public class Table2Id implements java.io.Serializable {
private int bid;
private int tid;
private int mid;
//getters and setters
}
您可以使用此GitHub project生成的POJO出Database.Let的我知道,如果我错过了你的问题什么。
以上是 Hibernate代码生成用于非识别关系 的全部内容, 来源链接: utcz.com/qa/261289.html