标签: object-persistence

我是否需要在grails中明确刷新GORM保存调用?

我有一个奇怪的情况,似乎表明GORM缓存问题

//begin with all book.status's as UNREAD
Book.list().each { book.status = Status.READ ; book.save() }

println (Book.findAllByStatus (Status.READ)) //will print an empty list
println (Book.list().findAll (it.status == Status.READ)) // will print all books   
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么最后两个查询会返回不同的结果.

但是,如果我对book.save做了以下修改(flush:true).这两个println语句都将返回所有书籍.

我的印象是,在单个应用程序中这不是必需的.

作为参考,我正在使用

  • DB:mysql
  • Groovy:1.7.10
  • Grails:1.3.7

@HoàngLong

我的问题如下所示,假设action1/action2被多次调用,没有特定的模式

def action1 = {
   Foo foo = Foo.get(params.id)
   //... modify foo 
   foo.save() //if I flush here, it will be inefficient if action1 is called in sequence
}

def action2 = {
   //if I flush …
Run Code Online (Sandbox Code Playgroud)

grails grails-orm object-persistence

37
推荐指数
3
解决办法
3万
查看次数

*具有持久性存储的大型*python字典,可快速查找

我有4亿行独特的键值信息,我希望能够在脚本中快速查找.我想知道这样做的方式是什么.我确实考虑了以下但不确定是否有一种磁盘映射字典的方法,并且除了在字典创建期间没有使用大量内存.

  1. 腌制字典对象:不确定这是否是我的问题的最佳解决方案
  2. NoSQL类型dbases:理想情况下需要对第三方内容具有最小依赖性的东西加上键值只是数字.如果你觉得这仍然是最好的选择,我也想听听.可能它会说服我.

如果有任何不清楚的地方,请告诉我.

谢谢!-Abhi

python persistence object-persistence

22
推荐指数
4
解决办法
8757
查看次数

持久性与不可变数据结构

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

immutability object-persistence data-structures

18
推荐指数
2
解决办法
9104
查看次数

使用Python,我可以保留持久字典并对其进行修改吗?

所以,我想将字典存储在持久文件中.有没有办法使用常规字典方法来添加,打印或删除该文件中字典中的条目?

似乎我可以使用cPickle存储字典并加载它,但我不知道从哪里拿它.

python persistence dictionary object-persistence

13
推荐指数
3
解决办法
6930
查看次数

.NET对象持久性选项

我有一个问题,我觉得我没有找到一个满意的答案,或者我没有找到正确的地方.

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

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

 static UserIO.SaveUser(User user)
Run Code Online (Sandbox Code Playgroud)

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

User.Save()
Run Code Online (Sandbox Code Playgroud)

也许我错了,但是让这些"IO"文件遍布整个地方感觉不对.所以我正在考虑寻找持久性的其他选择,我想知道哪里是最好的起点.我过去曾使用过数据集,但有一些混合经验,特别是它们的表现.我知道LINQ现在已经存在但是我听说我不应该使用LINO我应该使用ADO.NET实体框架但是其他人告诉我实体框架不太正确我应该等待C#4.0.如果是这种情况,并且C#4.0即将到来,我应该继续使用我的"IO"文件方法,并在C#4.0最终发布时从实体框架开始.或者是否可以使用更优雅的类结构,例如使用Partial Classes?

我应该说,我不是要完全取代已经存在的数据访问,我更关心我正在创建的新实体.

如果这个问题有点普遍,我很抱歉,但是我没有很多人来反复这种想法.

c# sql-server data-access-layer object-persistence

11
推荐指数
1
解决办法
7639
查看次数

MVC3多步形式 - 如何持久化模型对象

我有一个多步骤表单,它使用一个模型对象,我需要在步骤之间保持它.只有在最后一步之后,对象才会保存到数据库中.我见过人们建议使用HTML.Serialize但这个选项有多安全?

此外,我的模型对象将随着用户填写表单而增长,这意味着带有序列化数据的隐藏表单字段将增加我的HTML输出的大小.

对于这种情况,最好的做法是什么?

object-persistence viewmodel razor asp.net-mvc-3

9
推荐指数
1
解决办法
6945
查看次数

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

现在我有java程序,其类目前是POJO并存储在易失性存储器中.这些都需要坚持下去.据我所知,两个流行的选择是JDO和Java Persistence API.对于那些对SQL,Torque等知之甚少的人来说,这是为程序数据添加持久性的最简单方法吗?

java persistence object-persistence jdo apache-torque

7
推荐指数
4
解决办法
2万
查看次数

是否有任何Delphi的框架/库接近Bold/Eco提供的功能?

不确定Bold/Eco在Borland/Codegear/Embarcadero过渡期间发生了什么,但我确实在新版本的Delphi中错过了它.有人知道一个接近的框架吗?

如果没有,也许你可以建议一个接近的库和组件的组合.

delphi domain-driven-design object-persistence bold-delphi

7
推荐指数
1
解决办法
1391
查看次数

Python:如何跨脚本的多个调用共享对象实例

我使用的库为外部程序提供python接口.这允许我创建:

foo = Foo()
Run Code Online (Sandbox Code Playgroud)

上面的代码启动了我可以在python中控制的Foo程序的新实例.

我有一个python脚本,需要多次调用,并根据外部参数,告诉外部Foo程序的单个实例做不同的事情.显然我做不到

foo = Foo() 每次,

因为每次我的脚本运行时都会创建一个新的Foo实例.

我想要做的是创建foo= Foo()一次,并让多个调用共享同一个实例.目前我只想创建一次,序列化它,并让我的脚本反序列化它.这种方法有效吗?还有更好的选择吗?

谢谢!!

python object-persistence object-sharing

7
推荐指数
1
解决办法
4001
查看次数

EClassNotFound在运行时引发的内容真正意味着当有问题的类在编译和链接时出现时,代码中是否有明确的含义?

我在表单的rtl Streaming中发生运行时错误,导致在执行TReader.ReadRootComponent时引发异常EClassNotFound.特定错误消息是"Class not found TActionList".

奇怪的是:

  1. 我的主要表单使用动作列表.
  2. 为了好玩,我将ActnList.pas(来自VCL源文件夹)添加到我的项目中,尝试修复它.

在实例化我几分钟前工作的表单时,这种情况发生在我身上.我做的改变是在一些子帧代码中:我用ifdef标记删除了它的所有实现部分代码,因为我正在模拟一些帧,用于单元测试和原型.

我尝试将动作列表类添加到项目中,我尝试使用和不使用各种编译器和链接选项,但是,我仍然得到此异常.显然有点奇怪了.必须有另一种奇怪的方法来解决这个问题.

事实上,似乎有一些非常奇怪的事情发生了.当引发此错误时,我得到以下调用堆栈:

rtl.Classes.ClassNotFound('TActionList')
rtl.Classes.TReader.FindComponentClass(???)
rtl.Classes.FindExistingComponent
rtl.Classes.TReader.ReadComponent(nil)       /// NIL!? WHAT!!!!!
rtl.Classes.TReader.ReadDataInner(???)
rtl.Classes.TReader.ReadData(???)
rtl.Classes.TComponent.ReadState(???)
vcl.Controls.TControl.ReadState(???)
vcl.Controls.TWinControl.ReadState($60B9CF0)
vcl.Forms.TCustomForm.ReadState(???)
rtl.Classes.TReader.ReadRootComponent($606EB90)
rtl.Classes.TStream.ReadComponent($606EB90)
rtl.Classes.InternalReadComponentRes(???,???,$606EB90)
rtl.Classes.InitComponent(TComplexFormContainingFrames)
Run Code Online (Sandbox Code Playgroud)

似乎nil是故意的,在TReader.ReadDataInner(Instance:TComponent)中:

      while not EndOfList do ReadComponent(nil);
Run Code Online (Sandbox Code Playgroud)

更新:我相信这个问题的答案是理解梅森提到的"序列化背景".并且,是时候承认我自己的愚蠢:我从项目中删除了框架的父级,没有意识到它是框架的父级.我通过将类型声明存根为TMyFrameParentas TMyFrameParent = class(TFrame)来解决这个问题,这反过来会导致问题.我在这里留下这个问题是因为我认为将来可能会非常方便地注意到这种异常发生在神秘的情况下,以及如何解决它.特别是,Mason有一些关于"序列化上下文"以及它们如何应用于类名查找的非常有趣的信息.

delphi exception object-persistence delphi-xe

7
推荐指数
1
解决办法
7772
查看次数