如何设置hibernate文件?

时间:2015-07-29 08:48:23

标签: hibernate gxt

我有一个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> -->

实际上我尝试了太多的例子......无法将它们全部列出....

1 个答案:

答案 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中链接它们。

(很抱歉回答而不是评论,还没有足够的声誉......)