标签: object-persistence

何时保存has_many关系中的Active Record对象?

我正在使用Rails 1.2.3(是的,我知道)并且对于如何has_many在对象持久性方面的工作感到困惑.

为了举例,我将使用它作为我的声明:

class User < ActiveRecord::Base
    has_many :assignments
end

class Assignment < ActiveRecord::Base
    belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

据我了解,这会生成一个方法User#assignments.build,该方法创建一个Assignment对象,该对象user_id是接收实例id(并且其他字段在参数中指定),但不会将此对象保存在数据库中.稍后可以通过调用保存该对象Assignment#save!.

然而,我一直用作教程和参考的实用程序员使用RailsAgile Web开发第二版说:

如果父对象存在于数据库中,则将子对象添加到集合会自动保存该子对象.

这里似乎有矛盾.我想知道的是:

  • 如果我这样做some_user.assignments.build,Assignment对象是否已保存?
  • 如果我这样做some_user.assignments << Assignment.new,Assignment对象是否已保存?
  • 如果我这样做some_user.assignments << Assignment.create,是两个数据库调用,还是只有一个?如果我Assignment在创建它并将其添加到之间修改对象怎么样some_user.assignments
  • 如果我save!Assignment对象User尚未保存在数据库中,会发生什么?

PS我不仅仅User#assignments.create用于所有事情的原因是因为它不允许我将初始化转移到外部方法,我希望能够做到这一点.我也不想多次去数据库.

activerecord ruby-on-rails has-many object-persistence

4
推荐指数
1
解决办法
8405
查看次数

Spring Data JPA 检查 SET 是否包含对象

我有一个名为 Device 的域对象,具有此属性

@ManyToMany(cascade = CascadeType.MERGE, fetch = FetchType.EAGER)
private Set<Driver> authorizedDrivers = new HashSet<>();
Run Code Online (Sandbox Code Playgroud)

我想进行此查询,但出现错误(antlr.NoViableAltException:意外的 AST 节点:()

@Query("select dev from Device dev where dev.authorizedDrivers.contains(?1) ")
Set<Device> findDeviceByDriver(Driver driver);
Run Code Online (Sandbox Code Playgroud)

java jpa object-persistence spring-data spring-boot

4
推荐指数
1
解决办法
3287
查看次数

.net对象持久性

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

.net object-persistence

3
推荐指数
1
解决办法
1021
查看次数

JavaScript/Google v8的持久性框架

是否有任何类型的JavaScript和/或Google v8引擎的持久性框架?

我想存储(序列化)整个对象图(包括例如函数)并稍后重新加载它.JSON是不够的,因为它不允许存储函数并且只允许树状结构(即没有两个对象引用同一个对象).

我需要能够做到这一点(即在我编写程序嵌入v8的时候不知道JavaScript代码),因为我希望程序的用户能够使用JavaScript自定义它,但我需要存储我的程序状态(包括自定义状态)并稍后重新加载.因此,我需要存储JavaScript引擎的状态.

编辑:

例:

假设我们有以下代码:

var obj = { a: 4, b: function (x) { return x + this.a; } }
// ...
if ( ... ) { obj.a = 5; }
// ...
if ( ... ) { var c = 1; obj.b = function (x) { return x + this.a + c; } }
// ...
// now I want to serialize obj
Run Code Online (Sandbox Code Playgroud)

那么它(没有关于程序逻辑的任何元信息)是否可以序列化obj并随后反序列化,以便obj.b (2)在反序列化之后提供与序列化之前相同的结果?

第二次编辑:注意关闭.

javascript persistence v8 object-persistence

2
推荐指数
1
解决办法
871
查看次数

Java 的 C# 等效项 @DynamoDBTyped(DynamoDBAttributeType.BOOL)

我有这个问题,但没有 C# 答案,只有 Java 答案(DyanmoDb 存储值 1 而不是布尔值 true),所以发布此问题。

据我所知,您无法使用 DynamoDB 的对象持久性模型并确保布尔基元在放入 DynamoDB 表中时保持“true”/“false”。默认情况下,它们会变成“1”和“0”。

我们如何确保布尔字段在放入 DynamoDB 时不会变成 1/0?

c# object-persistence amazon-dynamodb

2
推荐指数
1
解决办法
894
查看次数

如何以便携式形式在c#应用程序中存储数据?

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

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

贾森

c# object-persistence c#-3.0

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