jjzjj

Persistence

全部标签

java - 使用给定的字段对象 id 而不是对象本身存储 JPA 实体

问题如下:我们有实体:@EntitypublicclassFeedback{@Id@GeneratedValue(generator="token")privateStringid;@ManyToOneprivateProductproduct;privateStringmessage;//otherfields}我们有一个服务器端点,它接收来自客户端的反馈。以多部分/基于表单的格式收到的反馈,包含以下字段:ProductId-productidentifierMessage-feedbackmessageSomeotherfields要设置Feedback.product,我们需要从

java - Persistence.xml 和 OSGi (Equinox)

我目前正在使用OSGi进行测试。我正在通过Eclipse运行它。我想让我的DAO层成为OSGi解决方案的一部分,但我的第一个绊脚石是这个错误:Jun29,20096:12:37PMorg.hibernate.cfg.annotations.VersionINFO:HibernateAnnotations3.3.0.GAJun29,20096:12:37PMorg.hibernate.ejb.VersionINFO:HibernateEntityManager3.3.0.GAJun29,20096:12:37PMorg.hibernate.ejb.Ejb3Configurationcon

java - 为什么我们需要在 <persistence-unit> 元素中指定类?

我的persistence.xml有2个持久性单元。他们每个人都有几个元素。我认为我们必须指定与某个持久性单元相关的所有类。但是我不小心忘记了为新实体指定类元素,但即使没有它,程序也能正常工作。然后我删除了所有类元素,一切正常。那么,我们为什么需要它?示例代码:chartdemo.model.domain.Category 最佳答案 如果您没有在persistence.xml文件中指定类,您的持久性管理器将管理persistence.xml文件所在位置(jar文件、类目录)中的所有实体类。列出类使您可以灵活地选择实体并将它们分组到持

java - openejb 嵌入式容器找不到 persistence.xml

我在嵌入式模式下使用openEjb来测试无状态sessionbean,它有一个注入(inject)的EntityManager。但是,当我运行测试时,它失败了,因为它无法初始化应用程序。当我看到控制台时,我还可以看到与无法找到persistence.xml有关的错误注意:我尝试将WebContent和META-INF放在类路径中,但这也无济于事。更新:在使用openejb+eclipse时,资源查找有一些非常奇怪的地方。我将WebContent添加到源文件夹。我不再收到persistence.xml错误,但现在我收到一个错误,表明openejb找不到任何托管资源我将WebContent

java - Hibernate/persistence 有哪些常见问题?

我有一个应用程序,我想针对与Hibernate和/或持久性相关的可能问题进行测试。还有什么问题?我如何复制它们(字面意思)?你如何从中恢复过来?明确一点:我说的是多线程集群环境(最复杂的一个)。我的:org.hibernate.StaleObjectStateException:行已被另一个事务更新或删除(或未保存的值映射不正确)复制:加载对象。使用HQL进行更新。尝试更新(保存)加载的对象。句柄:不确定... 最佳答案 延迟加载是您会遇到的大问题之一,尤其是当您遵循标准DAO模式时。你最终会得到惰性加载的集合,但是在你的DAO层出

java - 能否说服 JPA 在例如 UUID 和字符串之间进行转换?

我有一个Java对象,它有一个UUID字段。我希望能够以明显的方式将这个对象持久化到数据库中;然而,Basic映射将使用Java序列化来编写它,而我希望UUID以其明显的字符串形式出现。有没有办法为该字段提供一个UUID字符串转换器到JPA,该字段将在读取和写入时使用,以便我可以自然地处理这种类型? 最佳答案 ChrisLercher评论Note:StartingfromJPA2.1,a@ConvertannotationcanbeusedwithanAttributeConverter.这种方法效果很好,并且与任何JPA提供程序兼

java - 删除然后创建记录导致Spring Data JPA重复 key 冲突

因此,在这种情况下,我需要记录头记录,删除它的详细信息,然后以其他方式重新创建详细信息。更新细节将带来太多麻烦。我基本上有:@Transactionalpublicvoidcreate(Integerid,ListcustomerIDs){Headerheader=headerService.findOne(id);//headerisfound,hasmultipledetails//Removethedetailsfor(Detaildetail:header.getDetails()){header.getDetails().remove(detail);}//Iterateth

java - 不活动 transaciotn : javax. persistence.TransactionRequiredException:执行更新/删除查询

为什么我的交易不活跃?我有这条消息:“javax.persistence.TransactionRequiredException:执行更新/删除查询”我找不到原因应用上下文:-->DAO实现@ComponentpublicclassUserDaoImplimplementsUserDao{@PersistenceContext(unitName="punit")privateEntityManagerem;protectedUserDaoImpl(){}//otherovverrideslikefind,get@Override@Transactionalpublicvoiddele

java - eclipse 链接 : No Persistence provider for EntityManager named

我想创建一个能够使用JavaPersistence的Bundle。为此,我在Eclipse中创建了一个插件项目。在我的项目中,我在META-INF中创建了一个persistence.xml文件。我已经在我的MANIFEST.mf中添加了这3个包(到依赖项中):javax.persistence.jarorg.eclipse.persistence.jarorg.eclipse.persistence.jar然后,在我的Activator中,我使用以下行创建一个EntityManager:factory=Persistence.createEntityManagerFactory(PER

java - JPA 类格式错误 "Absent Code attribute in method that is not native or abstract in class file javax/persistence/Persistence"

当我尝试调用100%工作代码时,我从eclipse中得到错误。例如,它在我的netbeans中工作,但不是这个eclipse项目。这个错误是荒谬的,我几乎可以肯定它是由我正在使用的OPENJPA的一些Maven依赖性引起的。任何指针?Mapproperties=newHashMap();properties.put(PersistenceUnitProperties.JDBC_PASSWORD,"");properties.put(PersistenceUnitProperties.JDBC_USER,"root");properties.put(PersistenceUnitProp