[英]Need help createing the hbm.xml
我是新來的冬眠者,我遇到了一個問題。 我已經從休眠網站上閱讀了所有入門指南等,但仍然無法提出解決方案。
我有這樣的課:
public class ResultTree {
String attrName;
Map<String, ResultTree> valueMap;
String classValue;
int caseQuant;
Set<Map<String, String>> otherRules;
public String getAttrName() {
return attrName;
}
public void setAttrName(String attrName) {
this.attrName = attrName;
}
public Map<String, ResultTree> getValueMap() {
return valueMap;
}
public void setValueMap(Map<String, ResultTree> valueMap) {
this.valueMap = valueMap;
}
public String getClassValue() {
return classValue;
}
public void setClassValue(String classValue) {
this.classValue = classValue;
}
public int getCaseQuant() {
return caseQuant;
}
public void setCaseQuant(int caseQuant) {
this.caseQuant = caseQuant;
}
public Set<Map<String, String>> getOtherRules() {
return otherRules;
}
public void setOtherRules(Set<Map<String, String>> otherRules) {
this.otherRules = otherRules;
}
}
這樣的類的hbm.xml應該如何顯示? 我可以自由創建任何數據結構。
謝謝您的幫助,MM
在Ranna的解決方案的幫助下,我成功地通過將類划分為兩個單獨的類來對類進行建模:
public class ResultTree {
private Long id;
private String attrName;
private Map<String, ResultTree> valueMap;
private String classValue;
private int caseQuant;
private Set<Rule> otherRules;
}
和
public class Rule {
private Long id;
private Map<String, String> terms;
private ResultTree tree;
private String classValue;
}
hbm.xml具有以下形式:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="lib.experiment.result">
<class name="ResultTree" table="RESULT_TREE">
<id name="id" column="RESULT_TREE_ID" type="long" />
<property name="attrName" type="string" column="ATTR_NAME" />
<property name="classValue" type="string" column="CLASS_VALUE" />
<property name="caseQuant" type="int" column="CASE_QUANT" />
<map name="valueMap" table="RESULT_TREE_LEAF" lazy="false">
<key column="RESULT_TREE_ID"/>
<map-key column="ATTR_VALUE" type="string"/>
<many-to-many class="ResultTree" />
</map>
<set name="otherRules" table="RULE" lazy="false">
<key column="RESULT_TREE_ID"/>
<one-to-many class="Rule"/>
</set>
</class>
</hibernate-mapping>
和
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="lib.experiment.result">
<class name="Rule" table="RULE">
<id name="id" column="RULE_ID" type="long" />
<property name="classValue" column="CLASS" type="string" />
<map name="terms" table="RULE_TERM" lazy="false">
<key column="RULE_ID"/>
<map-key column="ATTR_NAME" type="string"/>
<element column="ATTR_VALUE" type="string"/>
</map>
<many-to-one name="tree" class="ResultTree" lazy="false">
<column name="RESULT_TREE_ID"/>
</many-to-one>
</class>
</hibernate-mapping>
非常感謝您的幫助!
希望這對您有幫助。
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.ResultTree" table="result_treeid">
<meta attribute="class-description">This class contains student details.</meta>
<id name="id" type="long" column="id">
<generator class="native" />
</id>
<property name="attrName" type="string" length="100" not-null="true" column="attr_name" />
<property name="classValue" type="string" length="100" not-null="true" column="class_value" />
<property name="caseQuant" type="bigint" not-null="true" column="case_quant" />
<map role="valueMap" table="value_map">
<key column="id"/>
<map-key column="keyname" type="string"/>
<element column="valuename" type="ResultTree"/>
</map>
<map role="otherRules" table="other_rules">
<key column="id"/>
<map-key column="keyname" type="string"/>
<element column="valuename" type="string"/>
</map>
</class>
</hibernate-mapping>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.