【问题标题】:hibernate 5 one-to-many with observablelist休眠 5 与 observablelist 一对多
【发布时间】:2016-03-12 15:13:15
【问题描述】:

我有两个课程我已经“休眠”了。 其中一个(Urlaub 类)持有一个 ObservableList<Votes> vote 和相应的 getter/setter/property。第二类(投票类)应该在一对多关系中映射,但我不知道如何。

我对 Urlaub 类的映射是:

<hibernate-mapping>
  <class name="de.sul.urlaubsplaner.model.Urlaub" table="urlaub_data" catalog="urlaub">
        <id name="iddata" type="java.lang.Integer">
            <column name="id_data" />
            <generator class="identity" />
        </id>
        <property name="iduser" type="java.lang.Integer">
            <column name="id_user" />
        </property>
        <property name="startDate" type="java.time.LocalDate">
            <column name="start_date" />
        </property>
        <property name="endDate" type="java.time.LocalDate">
            <column name="end_date" />
        </property>
        <property name="days" type="java.lang.Integer">
            <column name="days" />
        </property>
        <property name="daysSum" type="java.lang.Integer">
            <column name="daysSum" />
        </property>
        <property name="status" type="string">
            <column name="status" length="255" />
        </property>
        <property name="created" type="java.time.LocalDateTime">
            <column name="created"/>
        </property>
        <property name="lastChange" type="java.time.LocalDateTime">
            <column name="last_change"/>
        </property>
        <set name="voteUp" cascade="all">
            <key column="id_data"/>
            <one-to-many class="de.sul.urlaubsplaner.model.UserVote"/>
        </set>
    </class>
</hibernate-mapping>
投票

<hibernate-mapping>
  <class name="de.sul.urlaubsplaner.model.UserVote" table="urlaub_vote" catalog="urlaub">
        <id name="id_vote" type="java.lang.Integer">
            <column name="id_vote" />
            <generator class="identity" />
        </id>
        <property name="id_data" type="java.lang.Integer">
            <column name="id_data"/>
        </property>
        <property name="id_user" type="java.lang.Integer">
            <column name="id_user"/>
        </property>
        <property name="status" type="string">
            <column name="status" />
        </property>
        <property name="created" type="java.time.LocalDateTime">
            <column name="created"/>
        </property>
        <property name="lastChange" type="java.time.LocalDateTime">
            <column name="last_change"/>
        </property>
    </class>
</hibernate-mapping>

两个 id_data 属于同一... 我喜欢做的是打电话

List<Urlaub> urlaub = (List<Urlaub>) session.createCriteria(Urlaub.class).list();

它也有所有的 UserVotes,然后我可以将其转换为 ObservableList。 任何想法?谢谢 顺便说一句,知道如何正确插入 xml 数据:)

【问题讨论】:

    标签: java hibernate java-8


    【解决方案1】:

    经过长时间的反复试验,终于找到了解决方案。 首先,作为一个 hibernate 初学者,使用 netbeans hibernate 向导很痛苦,因为它使用旧的 xml hibernate 配置语法,而我使用的 hibernate 可以与更新的类语法一起使用。因此,首先更改以下几行有助于更改错误消息,然后导致解决方案 来自:

    <mapping resource="de/superinge/urlaubsplaner/model/Urlaub.hbm.xml"/>
    <mapping resource="de/superinge/urlaubsplaner/model/UserVote.hbm.xml"/>
    

    到:

    <mapping class="de.superinge.urlaubsplaner.model.Urlaub"/>
    <mapping class="de.superinge.urlaubsplaner.model.UserVote"/>
    

    然后在我“链接”UserVote 的 Urlaub.class 中,我必须添加一个 OneToMany 关系与在这种情况下在 UserVote 中映射的列名 iddata...

    @OneToMany(mappedBy = "iddata")
    public List<UserVote> getVoteUp(){
        return voteUp;
    }
    

    然后一切都像魅力一样工作..希望这可以帮助某人

    【讨论】:

      猜你喜欢
      • 2013-08-29
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      • 2014-05-05
      • 2011-04-07
      • 2011-05-20
      • 2021-02-11
      相关资源
      最近更新 更多