我有一个AAAModelData.java,当有getter和setter时:
public static final String STRING_BBB = "StringBBB";
public List<BBBModelData> getBBB() { return get(StringBBB); }
public void setBBB(List<BBB> StringBBB) { set(STRING_BBB, StringBBB); }
在数据库中: table_AAA
-------------------------------
|column Uid | column FoodId | column FoodName|
-------------------------------
1 1 chocolate
2 2 cake
3 3 biscuss
table_BBB
-------------------------------
|column Uid | column FoodId | column ingredient|
-------------------------------
1 1 sugar
2 1 favour
3 2 salt
4 2 coco
5 2 milk
6 3 beef
7 3 fish
现在我使用hibernate将table_AAA映射到table_AAA.hbm.xml中的table_BBB,我想搜索table_BBB列B.
例如,我的程序想要获得“FoodId”2蛋糕的所有成分(实际上我需要用于我工作的table_BBB的完整表格)。 所以我可以将table_BBB放入BBB / BBBModelData类中,其中FoodId = 2;但是在使用hibernate时我遇到了一个非常非常困难的问题,出现了很多问题,例如:没有给定标识符的行, 期望的java.util.List,实际值xxxxxxxxx,Serialize,越来越多......
我希望有人可以提供&lt;映射&GT; /&lt;集&gt; ?对我来说。以下是我之前尝试过的事情:
<many-to-one name="BBB"
class="com.foo.gwt.shared.model.entity.BBB"
column="FoodId" lazy="false" not-null="true" />
<many-to-one name="BBB"
class="com.foo.gwt.shared.model.entity.BBB"
cascade="save-update"/>
<property name="BBB" type="java.lang.String">
<column name="FoodId" />
</property> -->
实际上我尝试了太多的例子......无法将它们全部列出....
答案 0 :(得分:1)
据我所知,BBB无法映射为具有当前表结构的独特实体。这个结构修复了吗?如果你想按原样使用结构,看一下组件映射,也许这会对你有所帮助: http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ch09.html#components-incollections
<class name="com.foo.gwt.shared.model.entity.AAA" table="table_AAA">
...
<list name="BBB" table="table_BBB" lazy="true">
<key column="FoodId">
<composite-element class="com.foo.gwt.shared.model.entity.BBB">
<property name="ingredient"/>
</composite-element>
</list>
...
</class>
我不知道您是否或如何映射uid列,但您可能需要照顾它们。
如果表格结构没有修复,我会建议两个不同的表格用于AAA和BBB,第三个表格用于在n:m-relation中链接它们。
(很抱歉回答而不是评论,还没有足够的声誉......)