问题标签 [spring-orm]
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.
jpa - Spring @Transactional 不是从 RoutingDataSources 开始的
我正在使用路由数据源,并且我的创建操作使用 @Transactional 注释进行了注释。但我注意到事务没有开始或提交。以下是我的路由数据源配置。
我与我的 org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean 一起使用的数据源相同。
我在部署时将另一个数据源添加到路由数据源,如下所示。Spring 事务管理不起作用。
spring - Dao 类不在 spring-boot 应用程序上执行插入或更新
在我当前的 spring-boot 应用程序中,我有这个休眠配置:
它创建数据库表并从中插入数据data.sql
没有问题,但是当我尝试通过视图插入或更新实体时,尽管没有触发错误,但没有插入数据。
来自表单的提交由我的控制器的以下方法处理:
在我的服务课程中,我有:
在我的 dao 课上:
任何人都可以看到这里有什么问题?
spring - 如何获取设置列表,其中设置应按 Hibernate.find() 中的 ID 分组
我有一个设置表,其中有多个设置。该表有一列“ idss ”。我想得到按这个“idss”分组的所有结果。所以我期待一个List将包含单个唯一条目以及具有共同“idss”的条目分组到 list。请帮助我如何做到这一点。
就像是
我正在使用spring orm从hibernate模板中使用find()方法
hibernate - Spring的异常翻译机制没有启动
我有一个场景,我故意试图违反 a unique constraint
,期望 SpringDataIntegrityViolationException
被抛出,但事实并非如此。
javax.persistence.PersistenceException
被抛出,org.hibernate.exception.ConstraintViolationException
但没有 Spring Translation 发生。
DAO
andService
类正确地用and@Repository
和@Service
Repository @PersistenceContext
ed 注释。
服务:
我的配置:
异常跟踪:
java - Spring ManyToMany 删除对象
我目前被困在春天的某个点上。目前,我有 2 个表,名为 Patient 和 Risk,由一个名为 Riskpatient 的表连接。每当我尝试从 Patient 实例中删除 Risk 对象时,它似乎并没有从列表中删除该对象。这是设置:
XML:
我的 DAO 实现文件:
调用 DAO 方法的控制器方法:
每当我使用单元测试运行此方法并将回滚设置为 false 时,它确实会被删除,但每当我使用控制器去那里时,它实际上并没有删除它。我什至在 DAO 方法中打印出列表的大小,在删除之前它说 4,之后是 3,但是当我回到控制器时,它不知何故又回到了 4。
对此的任何帮助表示赞赏。
国王问候
java - HibernateTemplate findByCriteria 和 Get 之间休眠会话状态的区别
我有以下奇怪的行为。
我有一些测试用例,在开始之前会创建 TestValues。首先创建主实体并使用测试值 ID 保存。为此,我使用 Springs HibernateTemplate 中的 saveOrUpdate。
然后创建一些子对象并将其附加到子集合中的该对象。(在 hbm.xml 中有 cascade="save-update")这些子对象此时没有分配 ID。
然后调用附加的 saveOrUpdate。
在我的实体上的每个 saveOrUpdate 上,都会在数据库中保存一个额外的审计条目。为此,每次创建一个 DetachedCriteria 时,它通过用户名搜索当前用户并在 Audit 条目中引用它。直到那时一切正常。每个子对象都会分配一个 ID。
经过一些分析后,我发现这个 DetachedCriteria 需要很多时间,并决定对其进行更改,以便我可以通过 HibernateTemplate by id 的 get 方法访问用户,这样效率更高。
但是知道发生了一些奇怪的事情。具有孩子的实体上的 saveOrUpdate 不会导致孩子的 ID 生成,并且看起来它根本不会保存孩子。
正如我在这里读到的http://www.journaldev.com/3481/hibernate-save-vs-saveorupdate-vs-persist-vs-merge-vs-update-explanation-with-examples HibernateTemplate saveOrUpdate 与持久化不同它可以在任何事务之外使用,这会导致映射集合在刷新之前不会被保存的上述行为。所以我不明白的是,当我在 HibernateTemplate 中使用带有 detachedCriteria 的 findByCriteria 时,为什么会有不同的行为。
当调用 get 而不是 findByCriteria 时,调用 findByCriteria 是否会调用会话刷新,或者为什么休眠会话的状态不同。审计条目、用户帐户和在创建测试值期间保存的实体之间没有直接引用。
PS:我知道现在不推荐使用 HibernateTemplate 。但它是一个旧应用程序,完全替换它需要太多时间。
java - 是否有 Spring ORM/JPA 的继任者或 TopLinkJpaVendorAdapter 的替代品?
这似乎是一个非常基本的东西,我应该能够很容易地找到它,但我一直无法找到答案!
在 Spring 3.2.4 文档中,它表明供应商对 Toplink Essentials 的支持已被删除: http ://docs.spring.io/autorepo/docs/spring-framework/3.2.4.RELEASE_to_4.0.0.M3/changes /pkg_org.springframework.orm.jpa.vendor.html
但是我在任何地方都找不到使用此类的替代方法——所有使用 Spring 配置 Toplink 的示例似乎都来自 Spring 2.5 左右的时间,例如https://community.oracle.com/thread/597157
谁能告诉我现在为 Toplink JPA 实现定义 Spring 应用程序上下文的公认方法是什么?
我在用着:
- 弹簧 (4.1.4)
- Toplink Essentials (2.1-60f)
- 嵌入式 Derby DB (10.11.1.1)
- 雄猫 (8.0.18)
我当前的代码和配置设置如下所示,它可以工作——从某种意义上说,当我/help
在我的模拟 Web 应用程序中创建数据库时——但它不会自动创建我的实体表,这就是我的主要工作试图立即找到解决方案。我怀疑这是因为下面定义的只是一个简单的 JDBC 数据源,而不是一个适当的 JPA 实体管理器工厂,它可以加倍努力并自动为我创建所有实体。
在我将它迁移到 WAR 并将其部署到 Tomcat 之前,我有一个使用相同的独立 java 应用程序persistence.xml
并且它工作得很好(自动创建数据库和实体表)。现在我已经转移到一个 Web 应用程序并将 Spring 混合在一起,不是那么多:-(
基本上,我知道我需要在我的 Spring 应用程序上下文中指定create-tables
(或generateDdl=true
)某处,就像在persistence.xml
文件中所做的那样,但我不确定如果没有类之TopLinkJpaVendorAdapter
类的东西如何做到这一点(请参阅下面的注释掉的元素applicationContext.xml
) .
Spring 实体管理器工厂似乎引用了中定义的持久性单元名称persistence.xml
,但似乎没有注意到其中定义的任何其他内容 - 有没有办法让 Spring 采用这些其他设置(即 Toplink 实体管理器工厂提供程序类,以及 JDBC 详细信息等)来自persistence.xml
? 或者,如果 Spring 放弃了供应商的实现,而只使用 Eclipselink 或 Hibernate,那么它是否值得继续使用 Toplink?(顺便说一句,有谁知道为什么这个实现类首先被删除?)
META-INF/persistence.xml:
WEB-INF/spring/applicationContext.xml:
WEB-INF/web.xml:
META-INF/context.xml:
org.xyz.web.HelpController:
hibernate - 蓝图 [Karaf] - Spring Orm - Hibernate - LocalSessionFactoryBean - Entity Vo 对象类未找到
我正在使用 Fuse Fabric 6.1.0-redhat-379。我们将基于 spring 的应用程序迁移到蓝图 osgi 应用程序。以前我们使用带有hibernate的spring orm来访问数据库。我试图将 spring orm(服务组合包)移植到蓝图容器。现在我面临一个错误,即在 hibernate-core 包中找不到映射资源文件中存在的实体对象。但同样存在于我的应用程序包中。
java - 尝试在 Spring-Hibernate 中启用二级 Hibernate 缓存时出错
下面是我的 applicationContext.xml
在我的应用程序中,hibernate 与 spring 集成在一起,一切正常,直到我尝试在我的应用程序中启用二级缓存。它已经开始给我一个例外。请帮忙,如何解决这个问题。我正在使用休眠 4.3.8.Final 和 spring 4.1.4.RELEASE。下面是该异常的完整堆栈跟踪。
google-app-engine - 无法为 App Engine 上标有 @Transactional 注释的类创建代理
我正在 App Engine 上尝试示例应用程序。在这里,我正在尝试 JPA 事务管理器,如下所示。
我在没有接口的情况下注释了我的服务org.springframework.transaction.annotation.Transactional
,如下所示
现在我看到在 App Engine 上启动应用程序时出现以下代理创建异常
但是当我在 tomcat 上部署相同的战争时,我没有看到任何问题,并且 spring 能够为服务创建代理。如果我实现了接口也没问题。当我没有接口时,只有我看到这个问题。
请指导我解决这个问题