问题标签 [hibernate]
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.
java - 何时使用 Hibernate/JPA/Toplink?
现在我正在制作一个非常简单的网站——大约 5 页。问题是集成某种数据库映射解决方案是否过于矫枉过正并且值得花时间,或者是否最好只使用普通的旧 JNDI。我可能需要从数据库中读取/写入十几个东西。我想我对这些技术有基本的了解,但仍然需要大量参考文档。其他人之前面临过这个决定吗?
编辑:对不起,我应该指定 JNDI 来查找数据库连接和 JDBC 来执行操作。
java - 在 Java 应用程序中管理时间的最佳方法是什么?
所以我正在使用休眠并使用管理时间的应用程序。在 24 小时制中处理时间的最佳方法是什么?
在此应用程序开始时我不需要担心 TimeZone 问题,但最好确保在开始时内置此功能。
我也在使用hibernate,仅供参考
java - 为什么 Hibernate 似乎是为短期会话而设计的?
我知道这是一个主观问题,但为什么 Hibernate 似乎是为短期会话而设计的?通常在我的应用程序中,我创建 DAO 来抽象我的数据层,但由于我无法预测实体对象将如何使用,它的一些集合是延迟加载的,或者我应该说一旦会话关闭就无法加载。
为什么他们不设计它以使其自动重新打开会话,或者让会话始终保持打开状态?
java - 使用 Spring 和 Hibernate 跨多个数据库执行分布式事务的“最佳”方法是什么
我有一个应用程序 - 更像是一个实用程序 - 它位于角落并定期更新两个不同的数据库。
这是一个使用 Spring Application Context 构建的小型独立应用程序。上下文中配置了两个 Hibernate Session Factories,依次使用 Spring 中配置的 Commons DBCP 数据源。
目前没有事务管理,但我想补充一些。对一个数据库的更新取决于对另一个数据库的成功更新。
该应用程序不位于 Java EE 容器中 - 它由从 shell 脚本调用的静态启动器类引导。启动器类实例化应用程序上下文,然后调用其中一个 bean 上的方法。
围绕数据库更新进行事务处理的“最佳”方式是什么?
我将把“最佳”的定义留给您,但我认为它应该是“易于设置”、“易于配置”、“便宜”和“易于打包和重新分发”的一些功能。自然开源软件会很好。
java - 由于 MS SQL 中 UNIQUE 约束的非标准行为,Spring/Hibernate 的解决方法
索引上有一个 UNIQUE 数据库约束,它不允许多个记录具有相同的列。
有一段代码,由 Hibernate (v2.1.8) 管理,执行两次 DAO
getHibernateTemplate().save( theObject )
调用,结果将两条记录输入到上面提到的表中。
如果此代码在没有事务的情况下执行,则会产生 INSERT、UPDATE,然后是另一个 INSERT 和另一个 UPDATE SQL 语句,并且工作正常。显然,顺序是先插入包含 DB NULL 的记录,然后用适当的数据更新它。
如果此代码在包装在单个 Spring 事务中的 Spring (v2.0.5) 下执行,则会导致两个 INSERTS,然后由于上述 UNIQUE 约束而立即出现异常。
由于与 ANSI SQL 不兼容,此问题仅在MS SQL上表现出来。它在 MySQL 和 Oracle 上运行良好。不幸的是,我们的解决方案是跨平台的,必须支持所有数据库。
拥有这些技术堆栈,对于给定问题,您首选的解决方法是什么?
java - Hibernate 全局过滤标准
有没有办法在会话工厂(配置)级别添加一个标准,该标准将适用于使用 Session 检索到的所有实体?我们要求不要从我们的数据库中删除任何行,而是“标记”已删除的实体,这样它们就不会参与任何进一步的操作。
我知道我们可以通过一个公共接口(例如一个公共基础 Dao 对象)来检索所有实体,但是使用全局过滤的方法不太容易出错,因为它不需要使用这个公共接口的知识。
java - 我可以让 Hibernate 透明地避免数据库中的字符串重复吗?
我有一个 Java 程序,它使用 Hibernate 和 MySQL 来存储大量有关使用 Eclipse IDE 的跟踪数据。该数据包含很多字符串,例如方法名称、目录、透视名称等。
例如,事件对象(然后反映在记录中)可以指定源文件和当前方法、用户名等。显然,字符串数据可以重复自身。
只要它在内存中,它的大部分就会被内部化,因此所有重复的字符串实例都指向同一个对象(我确保这一点)。但是,使用@Basic(我使用注释),Hibernate 将其映射为 VARCHAR(255),这意味着浪费了大量空间。
如果我自己编写 SQL,我可以将 VARCHAR 替换为手动管理的字符串查找表的索引并节省空间(以额外查找为代价)。
有什么方法可以让 Hibernate 为我做这件事吗?我愿意为空间的性能付出代价。
java - Hibernate序列生成的自定义
我有一个休眠序列,它在我的应用程序中生成所有序列号。当我从休眠(目标 Oracle10)生成模式时,它会生成:
我想更改序列的配置。我必须使用类似的东西:
每次创建脚本时,我都不喜欢更改生成的脚本。在哪里可以自定义hibernate生成的序列?
hibernate - Hibernate -- 根据成员对象的字段加载对象
如何根据成员对象的字段值通过 Hibernate 加载对象?例如,假设存在以下类,bar 和 foo 之间存在一对一的关系:
如果您只有 Foo 的 id,如何使用 Hibernate Criteria 加载 Bar?
我想到的第一件事是加载 Foo 对象并将其设置为加载 Bar 对象的标准,但这似乎很浪费。是否有使用 Criteria 执行此操作的有效方法,或者 HQL 是否应该处理?
hibernate - 如何使用 Struts 2 + Hibernate 3 向浏览器提供图像?
我正在使用 Struts 2.1.2 和 Hibernate 3.2.6.GA 开发一个 Web 应用程序。我有一个实体,User
我已使用 Hibernate 将其映射到USERS
数据库中的一个表。我想要一个与该实体关联的图像,我计划将其存储为BLOB
数据库中。我还想在网页上显示图像以及User
.
我能想到的解决方案是有一个表格IMAGES(ID, IMAGE)
,其中IMAGE
有一BLOB
列。USERS
将有一个FK
名为 的列IMAGEID
,它指向IMAGES
表。然后,我将在User
实体上映射一个属性,称为imageId
映射到此IMAGEID
作为 Long。当使用 JSP 渲染页面时,我会添加图像<img src="images.action?id=1"/>
等,并有一个 Action 读取图像并将内容流式传输到浏览器,并将标头设置为长时间缓存图像。
这行得通吗?有没有更好的方法来渲染存储在数据库中的图像?首先将此类图像存储在数据库中是正确的方法吗?