Questions tagged «persistence»

计算机编程中的持久性是指将数据保存在应用程序内存之外的功能。

4
困惑:使用JPA和Hibernate的@NotNull与@Column(nullable = false)
当它们出现在的字段/获取器上时,它们@Entity之间有什么区别?(我通过Hibernate保留了Entity )。 它们每个都属于什么框架和/或规范? @NotNull位于中javax.validation.constraints。在javax.validation.constraints.NotNulljavadoc中说 带注释的元素不能为空 但是它没有提到数据库中元素的表示形式,那么为什么nullable=false要在列中添加约束呢?

10
Hibernate中不同的保存方法之间有什么区别?
Hibernate有几种方法,它们以一种或另一种方式将您的对象放入数据库。它们之间有什么区别,何时使用它们?为什么不只有一种智能的方法知道何时使用什么? 到目前为止,我已经确定的方法是: save() update() saveOrUpdate() saveOrUpdateCopy() merge() persist()

1
不确定我是否了解TransactionAwarePersistenceManagerFactoryProxy
我正在尝试org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy在Spring项目中使用,但是我不确定如何使用它或它是否正是我想要的。我意识到这可以帮助我的DAO与普通的JDO一起工作PersistenceManagerFactory。另一个问题是:如果代理制作不当怎么办?我是否仍可以使用它来访问我的工厂以创建一个可识别事务的持久性管理器?如果工厂管理的对象是单例对象,这会改变情况吗?为什么不直接访问PersistenceManagerFactory?也许PersistenceManagerFactoryUtils.getPersistenceManager会更适合我的需求?可以getObject返回null吗?
192 java  spring  persistence  dao  jdo 

29
没有命名为EntityManager的持久性提供程序
我在目录下persistence.xml使用相同的名字。然后,我用以下代码调用它:TopLinkMETA-INF EntityManagerFactory emfdb = Persistence.createEntityManagerFactory("agisdb"); 但是,我收到以下错误消息: 2009-07-21 09:22:41,018 [main]错误-名为agisdb的EntityManager没有持久性提供程序 javax.persistence.PersistenceException:名为ag​​isdb的EntityManager的持久性提供程序 在javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:89) 在javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:60) 这是persistence.xml: <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"> <persistence-unit name="agisdb"> <class>com.agis.livedb.domain.AddressEntity</class> <class>com.agis.livedb.domain.TrafficCameraEntity</class> <class>com.agis.livedb.domain.TrafficPhotoEntity</class> <class>com.agis.livedb.domain.TrafficReportEntity</class> <properties> <property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/agisdb"/> <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/> <property name="toplink.jdbc.user" value="root"/> <property name="toplink.jdbc.password" value="password"/> </properties> </persistence-unit> </persistence> 它应该在类路径中。但是,我得到了上面的错误。
148 java  jpa  persistence  toplink 

26
休眠:“字段'id'没有默认值”
我面临的问题是Hibernate的一个简单问题,但无法解决(无法访问的Hibernate论坛当然无济于事)。 我有一个简单的课程想继续学习,但是请继续学习: SEVERE: Field 'id' doesn't have a default value Exception in thread "main" org.hibernate.exception.GenericJDBCException: could not insert: [hibtest.model.Mensagem] at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91) [ a bunch more ] Caused by: java.sql.SQLException: Field 'id' doesn't have a default value [ a bunch more ] 持久化类的相关代码为: package hibtest.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; …


3
在JPA / Hibernate中正确使用flush()
我正在收集有关flush()方法的信息,但是我不清楚何时使用它以及如何正确使用它。从我的阅读中,我的理解是持久性上下文的内容将与数据库同步,即发布未完成的语句或刷新实体数据。 现在,我得到下列设想两个实体A和B(在一比一的关系,而不是由JPA执行或模拟)。A具有手动设置的复合PK,还具有自动生成的IDENTITY字段recordId。这recordId应B作为的外键写入到实体A。我要存钱,A并且要B进行一次交易。问题是自动生成的值A.recordId是不是在事务内可用,除非我做的一个显式调用em.flush()打完电话后em.persist()上A。(如果我有一个自动生成的IDENTITY PK,那么该值将直接在实体中更新,但是这里不是这种情况。) 可以em.flush()在一个事务中使用时造成什么伤害?

9
什么是持久性上下文?
我是Java世界和JPA的新手。我在学习JPA时遇到了许多新术语,例如Entity,persistence。在阅读时,我无法理解Persistence Context的确切定义。 谁能用简单的外行术语解释它?与中使用的数据有@Entity什么关系? 例如,我发现此定义太复杂而难以理解: 持久性上下文是一组实体,因此对于任何持久性身份,都有一个唯一的实体实例。
109 java  jpa  orm  persistence 

5
何时在JPA中使用EntityManager.find()与EntityManager.getReference()
我遇到了一种情况(我认为这很奇怪,但可能很正常),在这种情况下,我使用EntityManager.getReference(LObj.getClass(),LObj.getId())获取数据库实体,然后将返回的对象传递给保留在另一个表中。 所以基本上流程是这样的: TFacade类{ createT(FObj,AObj){ T TObj =新的T(); TObj.setF(FObj); TObj.setA(AObj); ... EntityManager.persist(TObj); ... L LObj = A.getL(); FObj.setL(LObj); FFacade.editF(FObj); } } @ TransactionAttributeType.REQUIRES_NEW FFacade类{ editF(FObj){ L LObj = FObj.getL(); LObj = EntityManager.getReference(LObj.getClass(),LObj.getId()); ... EntityManager.merge(FObj); ... FLHFacade.create(FObj,LObj); } } @ TransactionAttributeType.REQUIRED FLHFacade类{ createFLH(FObj,LObj){ FLH FLHObj =新的FLH(); FLHObj.setF(FObj); FLHObj.setL(LObj); .... EntityManager.persist(FLHObj); ... } …

5
localStorage有多持久?
我正在编写的插件在很大程度上取决于localStorage。所有用户设置都存储在其中。有些设置要求用户写正则表达式,如果他们的正则表达式规则在某个时候消失了,他们会感到很遗憾。所以现在我想知道localStorage的持久性如何。 从规格: 用户代理应仅出于安全原因或在用户要求时才使本地存储区中的数据过期。 上面看起来像在客户端上的cookie一样工作。即,当用户清除所有浏览器数据(历史记录,Cookie,缓存等)时,localStorage也将被截断。这个假设正确吗?

2
REFRESH和MERGE在数据库方面意味着什么?
我很好奇,需要快速找到答案。Google不会有太大帮助。 Java Persistence API具有这些属性,这些属性告诉框架对相关实体进行级联操作: CascadeType.PERSIST CascadeType.DELETE CascadeType.MERGE CascadeType.REFRESH 我知道前两个是什么意思:当我持久化具有B的对象A时,也持久化B,并且在删除A时也删除B。 但是我无法理解其他两个人的成就。救命?
93 java  jpa  persistence 


4
@Entity和@Table中的名称属性
我有一个疑问,因为@Entity和@Table中都存在name属性 例如,允许名称属性具有相同的值 @Entity(name = "someThing") @Table(name = "someThing") 我也可以在同一班上使用不同的名字 @Entity(name = "someThing") @Table(name = "otherThing") 谁能告诉我这两者之间有什么区别,为什么我们两者都具有相同的属性?

6
休眠与iBATIS的比较
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 3年前关闭。 改善这个问题 为了重新设计新产品,我们正在从Java中选择最佳框架。由于考虑使用模型的数据库不可知方法,因此我们正在研究iBATIS或Hibernate在Struts + Spring之间的选项。请提出建议,因为两者都可以提供持久性。

10
使用和保留枚举的最佳实践
我在这里看到了几个有关处理和持久保存枚举式值的最佳方法的问题/讨论(例如,持久化适用于枚举的数据,如何使用NHibernate来持久化枚举),我想问一下一般共识。 尤其是: 这些值应如何在代码中处理? 应该如何将它们持久保存到数据库中(作为文本/作为数字)? 不同解决方案的权衡是什么? 注意:我已将本问题中最初包含的解释移至答案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.