gpt4 book ai didi

java - 持久化 JPA 域对象的良好设计

转载 作者:行者123 更新时间:2023-12-01 16:08:51 24 4
gpt4 key购买 nike

我有一个域对象,它存储一些元数据和一些原始字节。这用于存储二进制对象,例如 PDF 文档和图像。

我想将元数据保存在数据库中,以便可以轻松查询,但出于性能原因,我想将原始字节存储在文件系统中。实现这一目标的良好设计是什么?

我是否应该有一个代表原始字节的域对象,用它自己的 DAO 来执行 CRUD,并使用一个单独的 JPA DAO 对元数据执行相同的操作?

如果是这种情况,元数据的域对象是否包含对标记为 transient 的原始字节对象的引用,以便 JPA 不会尝试保留它?

我是否遵循过于复杂的设计,与在数据库中存储原始字节相比几乎没有什么好处?如果有影响的话,我正在使用 PostgreSQL 8.x。

非常感谢。

最佳答案

我真的不会这么做。您是否测量过预期的性能影响?您将如何维护数据库中的数据和文件系统上的数据之间的事务性。例如您要写入文件系统,写入数据库,如果失败,则回滚文件系统更改(这并不像简单删除文件那么简单 - 您是否有以前版本的二进制数据?)。您如何管理数据库备份等并保持一切同步?我强烈建议将所有数据保存在一个地方。

既然您正在谈论存储 PDF 等,也许您需要 document management system

关于java - 持久化 JPA 域对象的良好设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1959095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com