问题标签 [object-persistence]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
303 浏览

c# - Db4O - 我可以保存字符串吗?

我有以下代码:

但它失败了。我想这与我正在保存一个字符串的事实有关。

我的 Save() 代码是这样的:

我的持久课程应该有什么特别的吗?或者我可以用 db4o 保存几乎任何东西?

0 投票
5 回答
2364 浏览

c# - DTO 与序列化持久化实体

我很想知道社区对这个问题的看法。我最近遇到了 NHibernate/WCF 场景的问题(实体持续存在于服务层),并意识到我可能在这里走错了方向。

我的问题很明显,当在 Web 服务(在这种情况下为 WCF)后面使用持久对象图(NHibernate、LINQ to SQL 等)时,您更喜欢通过网络发送这些实体吗?或者您会创建一组更轻的 DTO(无循环引用)吗?

0 投票
1 回答
523 浏览

grails - Grails:GORM 和 BitSet?

我在官方文档中没有看到任何关于不支持的持久性数据类型的内容,所以我假设应该处理 Groovy 语言中可用的类型。但是,对于以下域类:

我越来越:

2009-11-15 16:46:12,298 [main] 错误 context.ContextLoader - 上下文初始化失败 org.springframework.beans.factory.BeanCreationException:创建名为“messageSource”的 bean 时出错:bean 初始化失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“transactionManager”的 bean 时出错:设置 bean 属性“sessionFactory”时无法解析对 bean“sessionFactory”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“sessionFactory”的 bean 时出错:调用 init 方法失败;嵌套异常是 org.hibernate.MappingException:来自表 doc_group_permissions 的关联引用了一个未映射的类:java.util.BitSet

有没有人遇到过这个?

0 投票
5 回答
1036 浏览

.net - .net 对象持久性

您能否推荐一个免费、开源或低成本的.net对象持久性框架?我不是在寻找像 NHibernate 或实体框架这样的 ORM 工具。描述我需要的最接近的商业产品是fastobject.net框架。谢谢。

0 投票
6 回答
22229 浏览

java - 持久化java对象的最简单方法是什么?

现在我有 java 程序,其类当前是 POJO 并存储在易失性内存中。这些都需要坚持。据我了解,两个流行的选择是 JDO 和 Java Persistence API。对于对 SQL、Torque 等知之甚少的人,哪一种是为我的程序数据添加持久性的最简单方法?

0 投票
1 回答
294 浏览

hibernate - 当我只需要一个主键时,Hibernate 会创建两个主键

我有一个名为 Expression 的 Hibernate 类(为了您的观看乐趣在这里简化了):

这将创建两个表,Expression(id, data)并且Expression_Expression(expression_id, dependencies_id). 但是,Hibernate 将 expression_id 和 dependencies_id 列都设置为主键,所以我不能有重复的 dependencies_id,这正是我想要的。

例如,如果我有三个表达式:

然后 Hibernate 将执行以下操作:

插入id = 1 和 data = "0"x的表 插入id = 2 和 data = "1"的表 插入id = 3 和 data = "a + b"的表 插入一行到 ' Expression_Expression' 表,其中 expression_id = 3 和 dependencies_id = 1。(制作的依赖项。)Expression
yExpression
zExpression
zx

Expression_Expression但是,当它尝试在expression_id = 3 和 dependencies_id = 2的表中插入一行(使其z成为依赖项y)时,我得到一个重复的条目错误。

我希望能够在Expression_Expression表中有多个具有相同expression_id值的行。

任何帮助将不胜感激!

0 投票
2 回答
1528 浏览

nhibernate - NHibernate:多对一 - *必须*您加载父对象?

假设以下实体类:

假设 Player 有以下映射类:

并假设以下 Player 存储库方法:

我的问题:

当我想创建一个新玩家时,我必须加载一个成熟的团队(父对象)吗?
或者我可以指定一个“模拟”对象,只指定外键?


  • 如果我不能指定一个“模拟”对象(只指定外键),你能解释一下为什么我不能吗?
  • 也就是说,你能给我一个关于引擎盖下发生了什么的想法吗?

小心:



编辑: 这个答案指向我问题的本质。

把它想象成有一个只保留 Id 的对象,如果你需要它会加载其余的。如果您只是传递它来创建关系(如 FK),那么 id 就是您所需要的。

  • 好吧,如果是这样的话,那我为什么需要担心代理对象之类的呢?如果这真的很重要,为什么我不能只创建一个“虚拟”对象并指定外键值?
0 投票
2 回答
439 浏览

java - 需要更新 GAE Java 中现有对象的主键

我正在使用 GAE Java 构建一个 Web 应用程序。我有一个使用 Long ID(由 appengine 生成)作为其主键的类。

我现在想创建一个新类,它将成为这个原始类的父类(一对多关系)但是孩子需要有一个“key”类型的主键,而不是我现在拥有的 Long ID。

对于现有的持久化实体,将主键更改为“键”类型而不是长键的最佳方法是什么?我应该创建一个主键类型为“key”的新类,并实例化和持久化从旧对象复制字段值的新对象吗?或者我可以以某种方式更新现有的课程吗?

谢谢

0 投票
1 回答
1660 浏览

java - 在 Hibernate 中正确实现一对多单向关系

我正在尝试学习如何使用 Hibernate 来实现 Java Object Persistence。具体来说,我试图弄清楚如何实现单向一对多映射。我已经阅读了休眠文档和有关该主题的大量 Stackoverflow 问题,但它们并不完全清楚,所以我想知道实现它的正确方法是什么。

这是我尝试映射的 Java 对象类型的(极其简化的)示例:

所以问题是,我如何编写 hbm.xml 文件来映射它?

hibernate 文档表明,在这种情况下,放置在 Student 的映射文件中应该足够了。当然,假设我已经完全充实了 Student 和 StudentGrade 的映射文件。

但是,它只显示映射文件而不是伴随它的 Java 对象。在映射文件中,该多对一元素与其他属性一起列出。它不包含在列表或集合元素中。在其他地方,它确实显示了使用 Collection 的 Java 对象(在示例中实现为 HashTable 的 Set),它有一个如下所示的映射文件:

这也是我在许多 StackOverflow 问题中看到的。那么实现这一点的正确方法是什么?

0 投票
4 回答
1720 浏览

c# - DDD 值对象:如何在没有大量 SQL 连接的情况下持久化实体对象?

显然我说 DDD 在实用性上类似于 EAV/CR 是错误的,但到目前为止我看到的唯一区别是为每个实体构建的物理表具有大量连接,而不是三个表和大量连接。

这一定是由于我缺乏对DDD的理解。 在导入数据时,如何将这些对象物理存储到数据库中而不会产生重大的连接和复杂性? 我知道您可以简单地创建输入到您的存储库的对象,但是很难训练像 Microsoft Sql Server Integration Server 这样的工具来使用您的自定义 C# 对象和框架。也许这应该是我的问题,您如何将您的 DDD ASP.NET C# 框架与 Microsoft SQL Server 集成服务和报表服务一起使用?哈哈。

在 EAV/CR 数据库中,我们可以根据人员类型设置具有不同类的单个人员表:供应商、客户、买方、代表、公司、清洁工等。三个表,一些连接,属性始终是字符串在我们插入之前进行验证,就像 MVC 中的 ModelValidation 一样,对象接受任何值但在它有效之前不会持续存在。

在标准的关系模型中,我们曾经为每种类型的实体创建一个表,并混合了像 City 这样的冗余数据类型。

使用领域驱动设计,我们使用对象来表示每种类型的实体、每种类型的 ValueObject 的嵌套对象,以及更多嵌套对象仍然是必要的。在我的理解中,这会为每种实体生成一个表,为每种信息集(值对象)生成一个表。对于所有这些表,我看到了很多连接。我们最终还为每种新的联系人类型创建了一个物理表。显然有更好的方法,所以我在如何将对象持久保存到数据库方面一定是不正确的。

我的供应商看起来像这样:

我的买家:

我们真的引用了 Vendor.vBuyer.bPhone.pAreaCode 之类的东西吗?我想我们会引用和存储 Vendor.BuyerPhoneNumber,并构建对象几乎就像这些部分的别名:Vendor.Address1、Vendor.Address2、Vendor.BuyerPhoneNumber ... 等等。