问题标签 [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 投票
6 回答
2036 浏览

c# - 如何以可移植的形式将数据存储在 c# 应用程序中?

我正在使用 windows 窗体和 c# 3.0 编写应用程序。我想知道是否有推荐的跨时间持久化数据的方法。但是,我不想触摸它正在运行的机器,因此,我想将数据存储在二进制可执行文件中(最好是因为不需要用随机配置文件弄乱用户的文件夹)。

因此,如果有人对如何做到这一点有任何想法,将不胜感激!

杰森

0 投票
5 回答
8126 浏览

c# - .NET 对象持久性选项

我有一个问题,我只是觉得我没有找到令人满意的答案,或者我没有找到正确的地方。

我们的系统最初是使用 .NET 1.1 构建的(但是现在所有项目都支持 3.5),并且所有实体都使用存储过程和具有标准 ExecuteReader、ExecutreNonQuery 类型方法的“SQLHelper”持久化到数据库中。

所以通常发生的情况是我们将拥有我们的实体,例如 User 和 Role,我们将拥有另一个名为 UserIO 的类,它使用以下方法将这些对象持久化到数据库中:

单独的 IO 文件的原因是使 IO 与实体分开,但是仅仅调用不是更令人满意吗?:

也许我错了,但将这些“IO”文件分散在各处感觉不对。所以我正在考虑寻找其他持久性选项,我想知道从哪里开始最好。我过去使用过数据集,但有一些复杂的经验,尤其是它们的性能。我知道 LINQ 现在已经存在,但我听说我应该使用 ADO.NET Entity Framework 而不是 LINQ,但后来有人告诉我 Entity Framework 不太正确,我应该等待 C# 4.0。如果是这种情况,并且 C# 4.0 即将到来,我是否应该继续我的“IO”文件方法,并在 C# 4.0 最终发布时从实体框架开始。或者我可以使用更优雅的类结构,例如利用部分类?

我应该说,我并没有考虑完全替换已经存在的数据访问,我更关心我正在创建的新实体。

如果这个问题有点笼统,我很抱歉,但是我周围没有很多人可以反弹这种想法。

0 投票
2 回答
429 浏览

java - JPQL TIMEDIFF 等效

JPQL 中是否有等效的 SQL TIMEDIFF 功能?是否可以使用 JPQL 查询以查找特定时间范围内的记录?

0 投票
1 回答
651 浏览

blackberry - 黑莓持久对象/存储细微差别问题

我正在使用 PS 在我的应用程序中存储数据。我想我对 PS 的工作原理有误解。如果有人能告诉我如何使我从 PS 检索到的账单是未加密的,而不是我最终得到的加密账单?注意:我原来存储和未加密的账单!

据我所知,它认为两个账单和两个 PO 对象都是同一个对象!当我在 Eclispe 中查看它们的内存位置时,bill 和两个 PO 对象都具有相同的内存位置!我错过了什么?

谢谢!

0 投票
1 回答
4799 浏览

java - JPA:持久化对象,父级正常但子级未更新

我有我的域对象,Client我的 JSP 上有一个预先填充了其数据的表单,我可以接受修改后的值,并保留该对象。

Client有一个名为 的抽象实体MarketResearch,然后由三个更具体的子类之一扩展。

我有一个表单来预填充一些MarketResearch数据,但是当我进行更改并尝试持久Client保存时,它没有被保存,有人可以给我一些关于我哪里出错的指示吗?

我的 3 个域类如下(删除访问器等)

这就是我坚持的方式

总而言之,如果我更改父对象上的某些内容,它会持续存在,但如果我更改子对象上的某些内容,则不会。我错过了什么明显的东西吗?

我在持久/合并调用之前放置了一个断点,我可以看到对象上的更新值,但它似乎没有保存。我也在数据库级别检查过,没有运气

谢谢

0 投票
4 回答
2109 浏览

mysql - 数据非规范化和 C# 对象 DB 序列化

我正在使用具有各种不同实体的数据库表。这意味着我不能在其中包含任意数量的字段来保存各种不同的实体。相反,我只想保存最重要的字段(日期、参考 ID - 各种其他表的外键类型、最重要的文本字段等)和一个附加的文本字段,我想在其中存储更完整的对象数据。

最明显的解决方案是使用XML字符串并存储它们。第二个最明显的选择是JSON,通常更短,并且序列化/反序列化可能也更快......而且可能也更快。但真的是这样吗?我的对象也不需要严格序列化,因为 JsonSerializer 通常能够序列化任何东西。即使是匿名对象,也可以在这里使用。

解决这个问题的最佳解决方案是什么?

附加信息

我的数据库是高度规范化的,我正在使用实体框架,但为了拥有外部超快速全文搜索功能,我牺牲了一点数据库非规范化。只是为了我在 MySql 上使用 SphinxSE 的信息。Sphinx 将返回行 ID,我将使用这些行 ID 快速查询我的索引优化综合表,以便从中获取最重要的数据,这比在我的数据库中查询多个表要快得多。

我的表将有如下列:

  • RowID(自动递增)
  • EntityID(实际实体 - 但不直接相关,因为这必须指向不同的表)
  • EntityType(所以如果需要,我将能够获得实际的实体)
  • DateAdded(记录添加到此表时的时间戳)
  • Title
  • Metadata(与特定实体类型相关的序列化数据)

该表将使用 SPHINX 索引器进行索引。当我使用这个索引器搜索数据时,我会提供一系列EntityIDs和一个限制日期。索引器必须返回一个非常有限的分页数量的RowIDsDateAdded(降序)排序。然后我会将这些RowIDs加入我的表格并获得相关结果。所以这实际上不是全文搜索,而是过滤搜索。以这种方式获取RowIDs将非常快,并且从表中获取结果将比比较EntityIDsDateAdded比较快得多,即使它们会被正确索引。

0 投票
2 回答
290 浏览

java - 简单的对象持久化策略——休眠?

我在我的大学做一个 Java 软件项目,主要是关于存储数据集(软件测试的管理)。我首先想到的是一个简单的 SQL DB,但是目前还没有必要的 DB 方案(假设这个项目很愚蠢,但别无选择)。

像 Hibernate 这样的持久性框架是否能够在内部存储数据(例如以 XML 格式)并在以后将此 XML 转换为像样的 SQL?

我的意图是使用像 Hibernate 这样的框架的额外抽象层来节省工作,因为它可能具有转换功能。我知道 Hibernate 可以从 SQL 生成类文件,但我不太确定它是否在开发过程中的每个阶段都需要一个 DB。现在使用 XML 方案并稍后将其转换为 SQL 可能是一个想法 :)

0 投票
6 回答
980 浏览

c# - 将对象保存到数据库?

到目前为止,在我的 .Net 编码冒险中,我只需要将信息保存到文件中。所以我使用 XmlSerializer 和 DataContractSerializer 将属性类序列化为 XML 文件。然而,我的下一个项目需要我从 SQL 服务器数据库中保存和检索信息。我想知道我的选择是什么。

该应用程序的当前版本不是由我创建的,它使用了很多硬编码的 SQL 命令。但现在我试图避免做任何我必须从数据库或对象读取或写入单个字段的事情。我特别想避免在我的代码中使用大量硬编码的 SQL。我喜欢序列化程序类如何根据类的属性和/或公共属性确定如何读取和写入 XML 文件。对于数据库而不是 XML,是否有类似的东西?

0 投票
1 回答
1161 浏览

asp.net - ASP.NET 中的持久对象

我正在尝试找到持久化对象或稍后在代码中使用同一对象的最佳方法。因此,我创建了一个对象,然后您将被重定向到另一个需要使用该对象中的变量的页面(一个表单)。该表单已提交给第三方,他们完成了一些工作,然后他们在我的应用程序上请求一个页面,该页面运行更多代码并再次需要对象变量。

  • 我想到了数据库,但这一切都是一次性完成的。这是在用户结帐过程中完成的,结束后,没有理由再次检索此对象。因此,从数据库中添加和检索似乎有点矫枉过正,我认为这会使过程变慢。
  • 现在我正在使用 Session 但我一直听到不要使用它,但没有人真正说为什么我不应该这样做,除非这是不好的做法。
  • 我不能真正使用回发值,因为页面不是这样工作的。结帐过程以 dll 代码开始,该代码重定向到提交给第三方的表单,并且第三方请求页面。
  • 开始阅读有关缓存对象的信息,但我还没有使用它,我还不确定。

所以,我不确定最好的方法。所有选项是什么,每个人都推荐什么作为最佳方式?

0 投票
3 回答
2223 浏览

java - 内存映射文件和 Java 对象的透明持久性

问候大家,

我想通过内存映射文件实现 Java 对象的透明持久性(利用 OS 分页/交换机制)。

我的问题是:如何将 Java 对象移动到我的内存映射块?另外,我怎样才能强制一个新的对象实例驻留在这样的块中?

众所周知,内存映射块可以看作是一个字节数组,而我在这里真正要问的是如何将 Java 对象的地址空间与此类数组之一重叠?这样我们仍然可以在操作系统透明地处理持久性(写入脏页)时通过对象操作数据。

如果 Java 不允许我这样做,你会建议我使用哪种跨平台和垃圾收集 OO 语言?

谢谢大家。