Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Orm J2SE桌面应用程序-JPA数据库与集合?_Orm_Jpa_Java - Fatal编程技术网

Orm J2SE桌面应用程序-JPA数据库与集合?

Orm J2SE桌面应用程序-JPA数据库与集合?,orm,jpa,java,Orm,Jpa,Java,我有web开发背景,很长一段时间没有在Java中做过任何有意义的事情 我正在做一个小项目,其中大部分涉及到一些具有关系的模型以及这些对象的简单CRUD操作 JPA/EclipseLink似乎适合这个问题,但这类应用程序具有文件->打开和文件->保存功能,即用户将数据存储在文件中,而不是在会话之间保存在数据库中 上一次我在这样的项目上工作时,我将对象存储在ArrayList对象中,但从那时起我就开始使用MVC框架,这似乎有点原始。另一方面,使用JPA,打开一个文件需要在数据库中加载一大堆对象,只是

我有web开发背景,很长一段时间没有在Java中做过任何有意义的事情

我正在做一个小项目,其中大部分涉及到一些具有关系的模型以及这些对象的简单CRUD操作

JPA/EclipseLink似乎适合这个问题,但这类应用程序具有文件->打开和文件->保存功能,即用户将数据存储在文件中,而不是在会话之间保存在数据库中

上一次我在这样的项目上工作时,我将对象存储在ArrayList对象中,但从那时起我就开始使用MVC框架,这似乎有点原始。另一方面,使用JPA,打开一个文件需要在数据库中加载一大堆对象,只是为了方便起见,不必编写代码来管理对象


使用Java SE桌面应用程序管理模型数据的典型方法是什么?

JPA是专门针对数据库构建的。这意味着它通常在大型数据存储上运行,其中的对象属于许多不同的用户

在基于文件的场景中,文件通常不是那么大,文件中的所有对象都属于同一用户和同一文档。在这种情况下,对于二进制格式,旧的Java序列化仍然适用于临时文件

对于长期或可互换格式,XML更适合。使用
JAXB
(包括在标准Java库中),您可以使用一种基于注释的方法(表面上类似于JPA)将Java对象封送和分解为XML。事实上,我使用过同时具有JPA和JAXB注释的模型对象,因此它们既可以存储在数据库中,也可以存储在XML文件中

但是,如果您的桌面应用程序使用的文件表示需要分页和查询的潜在巨大数据集,那么使用JPA可能仍然是更好的选择。Java可以使用各种小型嵌入式DBs,尽管我不知道让数据源指向用户选择的文件有多简单。通常,Java中的持久性单元映射到固定的数据源,您还不能动态创建持久性单元

另一种选择是使用
JDO
,这是一种类似于
JPA
的映射技术,但不是ORM。它更独立于正在使用的后端持久性技术,并且确实映射到文件


很抱歉,这不是一个真正的答案,但更像是需要考虑的一些事情,但希望它在某种程度上有所帮助。

数据库模式是给定的还是您可以选择执行此工作所需的任何内容?不太清楚您的意思,有一个模式与应用程序的用途有关。一些一对一和一对多的关系会变得非常复杂。