java - 将 Spring Data JPA 与存储在 MySQL 数据库中的邻接矩阵一起使用
问题描述
我是使用 Spring Data Jpa 的新手,但我知道通常会在 Java 中创建一个“模型”/“实体”类,它代表数据库表中的一行数据。当我有一个具有 3 列/类属性的小表时,这对我来说很有意义,但是对于具有 100 列的表的情况呢?很难创建具有 100 个属性的“模型”类?我问这个的原因是因为我在 MySQL 数据库表中存储了一个大型的火车站邻接矩阵。我想在我的 Java Spring 应用程序中与这些数据进行交互,但无法理解如何做到这一点。
我对这样一个事实持开放态度,即我可能错误地存储了数据,或者在这种情况下根本不应该使用 Spring Data JPA。任何建议将不胜感激!
谢谢。
编辑:
我将尝试更清楚地解释我正在尝试做的事情。我想基本上将这个“站”(邻接矩阵)数据库表的副本导入到我的 Java Spring 应用程序中。我不知道如何最好地执行此“导入”,或者将表存储在什么 Java 数据结构中。我希望能够在 Java 中对数据运行一次像 BFS 这样的算法。
表中的数据是显示火车网络图的邻接矩阵。“1”表示车站由轨道连接,“0”表示没有连接。
解决方案
如果您的模型真正用一百个属性表示,那么是的,您可以创建一个具有一百个属性的实体。但我认为您的模型需要重新设计,因为按照我的看法,插入新记录需要更改架构。
由于我不知道这些列代表什么,我将假设它们可能是下一站和上一站?这将是一个简单的模型来表示这一点。
@Entity
@Table(name = "station")
@Getter
@Setter
public class Station {
@Id
private Long id;
@Column(name = "name")
private String name;
@OneToOne
@JoinColumn(name = "previous_station_id")
private Station previous;
@OneToOne
@JoinColumn(name = "next_station_id")
private Station next;
}
您的 DDL 将如下所示:
create table station
(
id bigint auto_increment,
name varchar(255) null,
previous_station_id bigint null,
next_station_id bigint null,
constraint station_id_uindex
unique (id),
constraint station_station_id_fk
foreign key (previous_station_id) references station (id),
constraint station_station_id_fk_2
foreign key (next_station_id) references station (id)
);
create index station_next_station_id_index
on station (next_station_id);
create index station_previous_station_id_index
on station (previous_station_id);
alter table station
add primary key (id);
因为这个表实际上有返回给自己的键,所以您首先插入一个没有上一个或下一个集合的站,然后您将更新记录以设置这些值。如果我不了解这些值是什么,请更新您的问题以更好地描述您要建模的内容以获得更准确的答案。
推荐阅读
- oauth - Ejabberd Oauth:访问被拒绝
- python-3.x - TensorFlow TPU 培训。InvalidArgumentError:未声明的 TPU 计算输出
- python - 如何增加标签间距以避免networkx图中的标签重叠
- python - python没有使用绝对路径创建带有w+的文件
- youtube-api - Youtube API 搜索直播停止工作
- c# - 使用字典获得正确的“命令”
- redirect - 如何使用 chrome 在 URL 中添加字符?
- arrays - 了解 Count Triplets HackerRank
- c# - 通过c#实现asp.net登录系统
- flutter - Flutter Bloc 与多个流?