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

python - Python:使用函数参数持续记忆函数的策略?

我写了一个小类来持续记忆一些昂贵的函数,这些函数对随机网络进行各种统计分析。

这些都是纯函数;所有数据都是不可变的。但是,有些函数将函数作为参数。

根据这些参数生成键是一个小问题,因为在 Python 中,函数对象相等性等同于函数对象标识,即使函数实现没有改变,它也不会在会话之间持续存在。

我暂时通过将函数名称用作字符串来解决这个问题,但是当人们开始考虑更改函数或匿名函数的实现等时,这会引发一系列问题。但我可能不是第一个担心这些事情的人。

有没有人有任何策略可以在 Python 中使用函数参数持续记忆函数?

0 投票
4 回答
708 浏览

c# - 在关系数据库中保存任何类型的对象

这可能有点花哨,但是否有任何模式或东西可以以最佳方式在关系数据库(不是 nosql)中存储任何类型的对象?

例如以非最佳方式:

并在数据库中:

然后记录被存储在数据库中,如下所示:

0 投票
1 回答
24 浏览

format - 这是持久化对象的已知格式吗?

我正在分析一个保留 HTML 表单输入数据的系统,如下所示:

有谁知道这是否是一种已知的、记录在案的格式?看起来有点像 JSON。

0 投票
2 回答
717 浏览

android - 在 android 上,我将如何创建一个扩展 Location Listener 的类,以便我的主要活动和 Intent Service 都可以使用相同的对象?

所以我计划创建一个需要获取用户位置的应用程序,它会有一个LocationController实现LocationListener接口的类。

我想要实现的是,一旦主要活动(MainActivity现在调用它)开始(在它的onCreate方法中)调用我的LocationController对象并让它开始获取位置修复和更新。

但是,我还需要实现一个 IntentService 或 Service ,即使在主要活动关闭后(即调用onPauseand or onStop)也将继续运行,并且该服务需要访问与LocationController主要活动在方法中启动的相同对象onCreate以获得一些位置读数。

现在,我花了一些时间研究如何将数据从活动传递到服务并查看Serializable,BundleParcel对象,它们都不能传递LocationListenerLocation对象,所以这对我来说不是一个选择(除非我错过了什么,在这种情况下,我愿意接受建议)。

我想到的另一个选择可能是静态对象。基本上,有LocationController一个静态类,以便可以调用它的方法来开始获取位置修复,但即使在被终止MainActivity后它也继续存在。MainActivity但是,我仍然不清楚如何做到这一点。例如,我是让我的整个LocationController对象成为静态对象,还是让其中的一些方法成为静态对象?

谁能帮我这个?

更新

于是我采纳了歌舞伎的建议,在主活动课上写了以下内容:

,其中设置了一个单例,但要访问我的 IntentService 类中的位置控制器(调用它MyService),我将位置控制器作为主活动类的静态成员访问,如下所示:

0 投票
1 回答
247 浏览

java - 对于 Terracotta 中的持久数据,如何进化类?

我们正在考虑将Terracotta用于我们的下一个项目。我对它在不需要单独的 DBMS 的情况下提供数据持久性的潜力很感兴趣。(另见 关于使用 Terracotta 作为持久性解决方案

软件演进的一大痛点是使现有的生产数据符合新的数据模型。对于 RDBMS,您可能会在部署时使用 SQL 更改脚本。对于 Terracotta 支持的数据,我并不清楚如何处理非平凡的进化。

Terracotta 文档中有几段关于 Class Evolution 的段落,但它似乎是特定于 DSO 的,而且相当肤浅。

  1. 有哪些可能的方法来处理存储在 Terracotta 中的持久数据的数据模型演化?我对非 DSO 场景(即通过 Terracotta Toolkit API)特别感兴趣。
  2. Terracotta DSO 和 Toolkit API 对进化类定义的反应是否不同?
  3. 要了解类进化的局限性,了解 Terracotta 如何表示/传达对象数据会有所帮助;有规范吗?
  4. 也许 OODBMS 世界中存在适用于 Terracotta 的模式演化技术?

作为一个简单的例子,假设我Car存储了一堆对象,并且我已经将类的modelYear字段Car从 aString更改为 an int。根据文档,这不是开箱即用的。我可以想象一个解决方案,Car在应用程序启动期间我的旧类加载器由单独的类加载器加载,然后转换为新的Car. 这会是一个好方法吗?为什么(不是)?

0 投票
2 回答
734 浏览

javascript - 从 Javascript 关闭子窗口

我一直在寻找解决问题的方法,但只能找到拼图的一部分,而无法将它们联系起来。我有一个可以打开多个其他窗口的窗口(它本身是主窗口的子窗口)。我希望在关闭父级时关闭子级窗口,听起来很简单吧?

这是一个难题,我的父窗口在打开子窗口时会回发,因此我保留的任何句柄数组(也是对象)不会持续存在。我已经研究过序列化和反序列化这个数组并将其存储在一个隐藏字段中,但这似乎不是最好的解决方案。我也无法访问正在打开的窗口的父级。

除了 Javascript,服务器端代码是用 C# 编写的,我使用的是 asp.net。有什么合理的解决办法吗?我还应该提到,我正在使用的代码早在我接触到它之前就由多个不同的人编写了,所以我想添加它而不是改变它的大部分工作方式。

最后,我知道在这里发布我的代码通常是一个好主意,但我只是var win = window.open用来执行窗口打开任务。

谢谢你。

0 投票
1 回答
353 浏览

hibernate - java休眠运行时异常

我正在尝试使用 Java Hibernate。我尝试从http://www.manning.com/bauer2/chapter2.pdf运行HelloWorld示例。但是我遇到了一些麻烦。我使用的jar版本和书中的不一样。所以,我必须摆脱不推荐使用的实例化方式。ant 编译成功,但如您所见,当我ant run时,出现以下异常。SessionFactory

C:\_Java Hibernate>ant run
Buildfile: C:\_Java Hibernate\build.xml
clean:
[delete] 删除目录
C:\_Java Hibernate\bin
[mkdir] 创建目录: C:\_Java Hibernate\bin
编译:
[javac ] 将 3 个源文件编译到 C:\_Java Hibernate\bin
复制元文件:[复制] 将 3 个文件复制到 C:\_Java Hibernate\bin
运行:
[java] 2012 年 3 月 31 日下午 3:09:04 org.hibernate.annotations。 common.Version
[java] INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
[java] Mar 31, 2012 3:09:04 PM org.hibernate.Version logVersion
[java] INFO: HHH000412: Hibernate Core {4.1 .1}
[java] 2012 年 3 月 31 日下午 3:09:04 org.hibernate.cfg.Environment
[java] INFO:HHH000206:找不到 hibernate.properties
[java] 2012 年 3 月 31 日下午 3:09:04 org.hibernate.cfg .Environment buildBytecodeProvider
[java] INFO: HHH000021: Bytecode provider name : javassist
[java] Mar 31, 2012 3:09:04 PM org.hibernate.cfg.Configuration configure
[java] INFO: HHH000043: 从资源配置:/hibernate .cfg.xml
[java] 2012 年 3 月 31 日下午 3:09:04 org.hibernate.cfg.Configuration getConfigurationInputStream
[java] 信息:HHH000040:配置资源:/hibernate.cfg.xml
[java] 线程“main”中的异常" java.lang.ExceptionInInitializerError
[java] 在 persistence.HibernateUtil.(Unknown Source)
[java] at hello.HelloWorld.main(Unknown Source)
[java] 原因:org.hibernate.HibernateException:无法解析配置:/hibernate.cfg.xml
[ java] 在 org.hibernate.cfg.Configuration.doConfigure(Configuration.jav a:2013)
[java] 在 org.hibernate.cfg.Configuration.configure(Configuration.java: 1925)
[java] 在 org.hibernate.cfg。 Configuration.configure(Configuration.java: 1904)
[java] ... 2 更多
[java] 引起:org.dom4j.DocumentException:http://hibernate.org/hiberna te-configuration-3.0.dtd 嵌套异常:http ://hibernate.org/hibernate-config uration-3.0.dtd
[java] at org.dom4j.io.SAXReader.read(SAXReader.java:484)
[java] at org.hibernate.cfg.Configuration.doConfigure(Configuration.jav a:2005)
[java] ... 4 更多
[ java] Java 结果:1
BUILD SUCCESSFUL
总时间:2 秒

请让我知道如何解决这个问题。

0 投票
2 回答
9954 浏览

data-structures - 持久与不可变的数据结构

持久和不可变的数据结构有什么区别吗?Wikipedia 在讨论持久性时指的是不可变数据结构,但我感觉两者之间可能存在细微差别。

0 投票
2 回答
673 浏览

java - 在java中不使用数据库的情况下保留项目的历史记录

我有一个小型 java 实用程序应用程序,它在远程计算机上执行任务。这个应用程序将为用户提供一个下拉/组合框,他们可以在其中输入他们希望连接的计算机的 IP 地址或主机名。如果用户可以在下拉列表中拥有他们连接的项目/主机的历史记录,那就太好了。

我认为我可以在可分发的 jar 中创建一个文件并使用它来维护历史记录。但是写入 jar 内的文件似乎是不可能的?替代方法是使用位于 jar 之外的文本文件、数据库等。但这不是我想做的,因为我的实用程序只有一个文件,我希望它完全独立于任何外部文件。此外,在您的 jar 文件周围放置一个文本文件或在每次运行应用程序时创建一个文本文件也不是很好。

考虑到这种情况,我可以使用哪些选项?是否有任何 API 可以帮助存储或保留历史记录?

0 投票
1 回答
230 浏览

php - Wordpress/PHP 中的持久对象

我想创建一组持久对象,它们从数据库加载它们的状态,然后持久保存在内存中,以便 Wordpress/PHP 页面加载用作缓存的内存对象。我会想象这些对象的接口包括:

  • initialise() - 从数据库加载状态并在服务请求之前执行所需的任何其他初始化功能
  • getter_foo() - PHP 代码调用内存缓存响应的一系列 getter 方法
  • getter_bar() - PHP 代码调用内存缓存响应的一系列 getter 方法
  • update() - 由时间或事件驱动的进程调用,要求对象返回数据库并刷新其状态

我怀疑的两个技巧是:

  1. 让主 PHP 进程分配并保存这些对象的内存引用,以便它们在 Web 事务/请求中保持固定到内存,而无需每次针对数据库重新初始化
  2. 具有允许事务进程获得指向此对象的指针的机制。

有没有这样做的解决方案示例?我已经编程多年,但对 Wordpress 和 PHP 都很陌生,所以也许这很简单。没有把握。无论如何,我确实认识到像redismemcached这样的技术解决方案可能会实现类似的目标,但会以不那么优雅和非上下文的方式实现。也就是说,如果没有简单的方法可以做到这一点,我很乐意使用 80/20 规则。:^)