java - 使用 Hibernate 从数据库中检索与自身相关的实体

标签 java sql database graph

我的 Java 代码中有这样一个实体

public class Point{

   private Float Lat;

   private Float Long;

   List<Point> neighbors;

};

所以我想将此信息保存在数据库中。我的想法是使用 Hibernate 而忘记创建表和关系。显然 List<> 邻居需要为关系创建一个新表。

此信息需要由 Web 服务检索,以便以图形形式找到两点之间的最短路径。

所以我不知道它在内部是如何工作的。如果我从数据库中检索点 X,Hibernate 将具有 X 的引用,并将检索列表邻居的点以备不时之需。 但是,对于列表中的这些点,我需要那些列表中的点,依此类推...

作为

Y = X.neighbours.elementAt[i].
Y.neighbours.elementAt[j].doSomeStuff...

为了覆盖所有的图找到最短路径。

框架是否可行?

以及,我如何使用 sql 脚本加载数据库。

作为

INSERT INTO POINT VALUES....

INSERT INTO NEIGHBOURS VALUES...

语法是怎样的?

最佳答案

是的,您只需更改您的 List 并映射它:

<set name="neighbors" table="point_table" cascade="all" fetch="join" lazy="false">
    <key>
        <column name="id"/>
    </key>
    <one-to-many class="package.Point"/>
</set>

这样做,当你从数据库中取出一个点时,它就会有它的相关点

关于java - 使用 Hibernate 从数据库中检索与自身相关的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46322335/

相关文章:

Oracle APEX 中的 SQL 自动递增在递增时偶尔会跳过一大块数字?

PHP:在唯一页面中显示博客页面

sql - Massive View 与历史表

mysql - ZF 最后插入的 ID 返回 '0'

java - JMS 统计主题域中未决消息的数量

mysql - 使用 typeorm 对多列进行排序

java - 如何使用 Glassfish 实现基本身份验证?

java - 组织数据的问题

java - Sonar 中的 findbugs 分析期间的迭代跳转信息收敛错误

java - 如何在 Apache Derby 中选择聚合的学生/类(class)数据?