0
我在DB两个表中的设置类型,以及一个拥有来自另一个外键的fllowing是模式:什么呢在进入
//表featureInfo
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for featureinfo
-- ----------------------------
DROP TABLE IF EXISTS `featureinfo`;
CREATE TABLE `featureinfo` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`globalId` int(11) NOT NULL DEFAULT '0',
`name` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`Id`),
KEY `globalId` (`globalId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
//另一个表featurefix
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for featurefix
-- ----------------------------
DROP TABLE IF EXISTS `featurefix`;
CREATE TABLE `featurefix` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`globalId` int(11) NOT NULL DEFAULT '0',
`modifyname` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`Id`),
KEY `FK-Guid` (`globalId`),
CONSTRAINT `FK-Guid` FOREIGN KEY (`globalId`) REFERENCES `featureinfo` (`globalId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
然后我用调用:hbm2java创建入门级:
public class Featureinfo implements java.io.Serializable {
private Integer id;
private int globalId;
private String name;
private Set featurefixes = new HashSet(0);
public Featureinfo() {}
}
现在我想知道为什么FeatureInfo中有一个属性?
而且Featureinfo.hbm.xml:
<hibernate-mapping>
<class name="com.pojo.Featureinfo" table="featureinfo" catalog="hibernateset">
<id name="id" type="java.lang.Integer">
<column name="Id" />
<generator class="identity" />
</id>
<property name="globalId" type="int">
<column name="globalId" not-null="true" />
</property>
<property name="name" type="string">
<column name="name" not-null="true" />
</property>
<set name="featurefixes" inverse="true">
<key>
<column name="globalId" not-null="true" />
</key>
<one-to-many class="com.pojo.Featurefix" />
</set>
</class>
</hibernate-mapping>
set元素是定义,为什么不使用 “连接子类” 呢?
映射xml文件中的“set/map/list/idbag”和“一对多/多对一”之间有什么区别?
谢谢您的回复。你能告诉我这个集合代表什么吗?只是为了一些外键?还有什么是一对多/多对一的关系?我不擅长sql,所以我想知道是否有人可以提供一些指导或文档? – hguser 2010-11-09 10:17:08
该集合在代码中呈现数据库上的一对多数据。数据库上的一对多意味着对于第一个表中的每一行,在另一个表中有许多行。所以在你的情况下,对于FeatureInfo中的每一行,在FeatureFix中可以有很多行。查看http://www.fbeedle.com/sql/029-6ch01.pdf - 可能有所帮助。 – 2010-11-09 13:46:24