问题标签 [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.
asp.net-mvc-3 - MVC3 多步表单 - 如何持久化模型对象
我有一个使用一个模型对象的多步骤表单,我需要在步骤之间保留它。只有在最后一步之后,对象才会保存到数据库中。我见过有人建议使用 HTML.Serialize 但这个选项有多安全?
我的模型对象也会随着用户填写表单而增长,这意味着带有序列化数据的隐藏表单字段将增加我的 HTML 输出的大小。
这种情况的最佳做法是什么?
java - Hibernate @Id @GeneratedValue 注释无法识别 DB2 数据库生成的增量 ID
使用 Hibernate 3 将第二条记录插入到 DB2 v9.x 中,其中一列具有由 DB2 生成的唯一主键列 Id 不适用于持久化我的 Hibernate 实体。
插入第一条记录可以正常工作,但是除非我手动递增并使用 setter 设置值,否则无法保留更多记录。我试过注释掉@GeneratedValue ....我使用正确吗?我不希望 Hibernate 自动递增 Id 列,我希望它使用 DB2 自身生成的递增 ID 来插入下一行。谢谢:)
这是我的代码:
在 DB2 create table 脚本中添加的约束以生成 Id:
这是一个例外:
休眠:插入到 RPS.TMRT(MRT_APRNUM、MRT_CHKLOC、MRT_DPTCDE、MRT_FUNCDE、MRT_MDCNUM、MRT_MDCRSLCDE、MRT_MDCRSLDTE、MRT_OCCCDE、MRT_QIDNO、MRT_REGDTE、MRT_REMARK、MRT_SECCDE、MRT_SMP、MRT_USRID、MRT_VISNUM、MRT_APLYER、MRT 值) ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 15-Mar-2011 17:37:44 org.hibernate.util.JDBCExceptionReporter logExceptions警告:SQL 错误:-803,SQLState:23505 2011 年 3 月 15 日 17:37:44 org.hibernate.util.JDBCExceptionReporter logExceptions 严重:DB2 SQL 错误:SQLCODE:-803,SQLSTATE:23505,SQLERRMC:1;RPS。 TMRT 2011 年 3 月 15 日 17:37:44 org.hibernate.event.def.AbstractFlushingEventListener performExecutions 严重:无法将数据库状态与会话 org.hibernate.exception.ConstraintViolationException 同步:无法插入:[qa.gov.moi.rps .db.实体。Medical_MRT] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister .java:2272) 在 org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:60) 在 org.hibernate.engine.ActionQueue 的 org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2665)。在 org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263) 在 org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167) 在 org.hibernate.event.def 执行(ActionQueue.java:279) .AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298) 在 org.hibernate。event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338) at org .hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106) 在 org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:54) 在 qa.gov.moi.rps.db.helper.MedicalHelper.create(MedicalHelper .java:74) 在 qa.gov.moi.rps.db.helper.MedicalHelper.main(MedicalHelper.java:285) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl .java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 com。intellij.rt.execution.application.AppMain.main(AppMain.java:115) 引起:com.ibm.db2.jcc.c.SqlException: DB2 SQL 错误:SQLCODE: -803, SQLSTATE: 23505, SQLERRMC: 1; RPS.TMRT 在 com.ibm.db2.jcc.c.fg.d(fg.java:1340) 在 com.ibm.db2.jcc.b.gb.k(gb.java:351) 在 com.ibm。 db2.jcc.b.gb.a(gb.java:60) 在 com.ibm.db2.jcc.bwa(w.java:52) 在 com.ibm.db2.jcc.b.wb.c(wb. java:213) 在 com.ibm.db2.jcc.c.gg.ab(gg.java:1779) 在 com.ibm.db2.jcc.c.gg.d(gg.java:2324) 在 com.ibm .db2.jcc.c.gg.W(gg.java:457) 在 com.ibm.db2.jcc.c.gg.executeUpdate(gg.java:440) 在 org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher .java:23) 在 org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2252) ... 还有 18 个 javax.persistence.RollbackException:在 qa.gov 的 qa.gov.moi.rps.db.helper.MedicalHelper.create(MedicalHelper.java:74) 的 org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:71) 提交事务时出错。 moi.rps.db.helper.MedicalHelper.main(MedicalHelper.java:285) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect。 DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115) :org.hibernate.exception.ConstraintViolationException:无法插入:[qa.gov.moi.rps.db.entity.Medical_MRT] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71) 在 org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) 在 org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2272) 在 org.hibernate.persister.entity.AbstractEntityPersister .insert(AbstractEntityPersister.java:2665) 在 org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:60) 在 org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279) 在 org.hibernate.engine。 ActionQueue.executeActions(ActionQueue.java:263) 在 org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167) 在 org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298) 在 org.hibernate .event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)在 org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) 在 org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338) 在 org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java :106) at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:54) ... 7 更多原因:com.ibm.db2.jcc.c.SqlException:DB2 SQL 错误:SQLCODE:-803,SQLSTATE : 23505, SQLERRMC: 1;RPS.TMRT 在 com.ibm.db2.jcc.c.fg.d(fg.java:1340) 在 com.ibm.db2.jcc.b.gb.k(gb.java: 351) 在 com.ibm.db2.jcc.b.gb.a(gb.java:60) 在 com.ibm.db2.jcc.bwa(w.java:52) 在 com.ibm.db2.jcc.b .wb.c(wb.java:213) 在 com.ibm.db2.jcc.c.gg.ab(gg.java:1779) 在 com.ibm.db2.jcc.c.gg.d(gg.java :2324) 在 com.ibm.db2.jcc.c.gg.W(gg.java:457) 在 com.ibm.db2.jcc.c.gg.executeUpdate(gg.java:440) 在 org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2252) 的 org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23) ... 还有 18 个
orm - ORM 和 Persistence 框架有什么区别?
我正在阅读 OOP 设计模式和框架设计,发现自己对ORM和Persistence 框架之间的区别有点不确定。ORM 是 PF 的一种吗?您可以期待两者有哪些不同的功能?
java - android应用程序/活动生命周期:我们应该什么时候保存到闪存?
我有一个由许多活动组成的应用程序。每个活动都可以以某种方式修改项目。我通过序列化一些对象并将它们保存到闪存来将此项目保存到闪存。现在,如果用户离开应用程序,它可能会被操作系统杀死。因此,我应该在每个活动的每个 onPause() 处保存..
但这是非常愚蠢和消耗的(序列化,打开文件,覆盖文件..)..
你有更好的主意吗?顺便说一句,如果我不想使用数据库,保存我的项目是对象序列化足够好还是我应该使用更健壮的东西(xml?)?
感谢您的澄清和建议..
design-patterns - 业务实体包含持久性功能
业务对象包含自己的持久性机制的模式是否有名称?例如:
我不是这种设计的拥护者——我只是好奇它是否有名字。
java - 使用 Hibernate 注释保存对象?
我只是想知道在使用 Hibernate 注释创建数据库后如何创建对象?
当我运行下面的代码时,它会使用对象创建数据库,但是当我第二次运行时它只是创建完全相同的对象,并且没有添加任何新对象?怎么来的?在使用注释创建数据库后,如何使用 .save 方法使用注释创建对象?还是不能使用注释来做到这一点?
提前致谢。
这是代码 person.class
grails - 我是否需要在 grails 中显式刷新 GORM 保存调用?
我有一个奇怪的情况,这似乎表明存在 GORM 缓存问题
我不明白为什么最后两个查询会返回不同的结果。
但是,如果我对book.save(flush:true)进行以下修改。这两个 println 语句都将返回所有书籍。
我的印象是,这在单个应用程序中是不必要的。
供参考,我正在使用
- 数据库:mysql
- 时髦的:1.7.10
- 圣杯:1.3.7
@Hoàng Long
我的问题如下所示,假设 action1/action2 都被多次调用,没有特定的模式
一种解决方案是设置一个标志,该标志由 action1 设置并由 action2 用于在必要时刷新。我的问题是这是一个过于复杂的解决方案,随着数据库调用复杂性的增加,它是不可扩展的。
python - Python:如何跨脚本的多次调用共享对象实例
我正在使用一个为外部程序提供 python 接口的库。这允许我创建:
上面的代码启动了一个我可以在 python 中控制的 Foo 程序的新实例。
我有一个需要多次调用的 python 脚本,并且根据外部参数,告诉外部 Foo 程序的单个实例来做不同的事情。很明显我做不到
foo = Foo()
每次,
因为每次我的脚本运行时都会创建一个新的 Foo 实例。
我想要做的是创建foo= Foo()
一次,并让多个调用共享同一个实例。目前我想只创建一次,序列化它,然后让我的脚本反序列化它。这种方法有效吗?有更好的选择吗?
谢谢!!
orm - 在实体中有一个非持久变量可以吗?
使用 ORM 时,如果模型类具有一些非持久性属性,仅用于计算,然后可以安全地删除,这是否违反了某种良好做法?
假设我们有一个产品。该产品有可能的选项列表。期权可能对产品产生价格影响。我们还有一组规则,该规则说,选择一个选项时,另一个选项的价格更改。
当我们将产品与选项一起添加到订单时,我们首先需要根据影响每个选定选项的规则重新计算所有选项的价格。然后我们可以计算产品及其所有选定选项的最终价格。
在此示例中,选项可以具有计算价格属性,该属性仅在所选选项的上下文中有意义,并且可以在将产品添加到订单后安全地删除。
有没有更正确的方法来思考这个问题,或者可以吗?
doctrine-orm - 与 Doctrine2 ODM 保持特定关系的问题
我正在使用Doctrine 2 MongoDB ODM,除了 1 个特定关系外,所有工作正常。模糊的是我在项目中似乎有相同的关系,它们都工作得很好
在 Project\Entities\PlayerCharacter 中使用(扩展上面提到的 Project\Entities\World\Object)=>
当我设置 $world 变量时,它在 PHP 脚本中很好。甚至 $objectManager->refresh($character), $character->getWorld() === $world 结果都很好。但它永远不会出现在 PlayerCharacter 端的数据库本身中(在设置后立即死亡并刷新以确保它不会在某处意外更改),仅出现在 World 端
另一方面
=>
作品
在简化版本中:
- PlayerCharacter::$user <==(1:N)==> User::$characters
(和所有其他人)都可以,而只有
- PlayerCharacter::$world <==(1:N) ==> World::$playerCharacters
仅适用于世界端
看了很多天,没发现有什么不同。
- 尝试重命名属性名称,没有变化
- 角色的水合器条目--->世界看起来与其他人相同
- 当我半手动(通过 RockMongo)添加条目时,它工作正常
- 将“世界”字段创建为 NULL 没有区别,{} 它显示“未定义索引:$id”,但我想这是预期的行为
- 实体分开工作也很好,真的只是这一关系
有什么我遗漏/忽视的地方,或者我能做些什么来发现为什么它没有得到持久化
(如果需要更多信息,将编辑帖子)
谢谢!