草庐IT

Hibernate-Spatial

全部标签

java - 强制 Hibernate 查询访问数据库

我已将一个实体加载到我的事务中并更改了该实体的属性。事务尚未提交。现在我想获得更改后的属性的原始值。我已经尝试使用HQL查询,例如selectp.propertyfromPersonpwherep.id=1以及事务中加载的实体的ID。我在执行查询之前设置了query.setHint("org.hibernate.cacheMode",CacheMode.IGNORE);。但没有成功。Hibernate返回当前事务中设置的值,而不是数据库中的值。有什么办法解决这个问题吗? 最佳答案 Ihaveloadedanentityintomyt

java - 鉴别器,带有 Hibernate 后端的 WrongClassException JPA

我有一个抽象父类(superclass)的要求。对于那个抽象父类(superclass),我有6个子类。我用JPA中的SINGLE_TABLE继承策略映射了它们。在另一个POJO中,我与这1+6个类有一对多的关系。@OneToMany(mappedBy="mSearchPreference",cascade=CascadeType.ALL)privateSetmSearchCriteria;这里“SearchCriteria”是抽象类。@Entity@Table(name="SRCH_CRTR_T",schema="LPEW")@Inheritance(strategy=Inherit

java - Hibernate 4 : persisting InheritanceType. JOINED 鉴别器列值

我有一个简单的JOINED文档层次结构:CREATETABLEDocuments(idINTEGERNOTNULL,discriminatorENUM('official','individual','external')NOTNULL,file_nameVARCHAR(200)NOTNULL,PRIMARYKEY(id));CREATESystemDocuments(idINTEGERNOTNULL,binary_dataBLOBNOTNULL,PRIMARYKEY(id),FOREIGNKEY(id)REFERENCESDocuments(id));CREATEExternalDo

java - 是否可以在 Hibernate 的同一个项目中同时使用注释和 hbm.xml 文件?

是否必须在使用注解和hibernate配置文件之间做出严格的选择,还是可以在同一项目中同时使用这两种方式?我们有一个使用Hibernate3.2.5和配置了.hbm.xml文件的POJO完成的大型项目。该项目使用HibernateSessionManager工厂而不是基于JTA的EntityManager工厂。以这种方式配置的POJO有一百多个,原始开发团队不愿意切换到注释。与此同时,我们需要使用更多POJO扩展项目,我们愿意使用Hibernate注释配置这些POJO,并且希望继续使用Hibernate-如果可能的话-而不是切换到JPA。是否可以同时对某些POJO使用.hbm.xml配

java - Hibernate javassist 代理和 `Object#equals`

在Java中为UDT提供#equals实现时,其中一个条件是传递的参数对象必须是当前类的实例,否则我们会快速失败returnfalse参见EffectiveJava(EJ2)。但是,在使用Hibernate4时,由于#equals条件将失败的延迟加载,我们最终可能会使用javassist代理实例。克服这个问题的最佳选择是什么?我能想到的几个选择是:扩展equals实现以考虑代理情况。缺点:可维护性收费、对Hibernate代理基础设施的硬连线依赖、hacky、实体或域模型应该与正在使用的ORM无关,即因为它们可能在不需要ORM的不同上下文中重用,例如Swing用户界面。在调用equal

java - 如何检查线程是否正在 hibernate ?

有什么方法可以检查给定线程是否正在hibernate? 最佳答案 您可以调用Thread.getState()打开并检查状态是否为TIMED_WAITING.请注意,TIMED_WAITING并不一定意味着调用了sleep()的线程,它也可能在Object.wait(long)中等待打电话或类似的东西。 关于java-如何检查线程是否正在hibernate?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

java - 在 Hibernate 中使用注释定义默认列值

我知道这里和网上有很多这样的问题,但所有答案都建议使用columnDefinition,它是特定于数据库的,因此不适用于我,因为我的系统处理需要在不同的数据库上运行。我找到了这个hibernateissue有人请求此功能进行注释的地方。该问题已关闭,说明anotherissue将涵盖该功能。第二个问题显然添加了注释@Generated和其他一些注释,但我找不到任何关于如何使用这些新注释定义默认列值的文档。所以我的问题是:有谁知道如何使用注释定义默认列值(而不是使用columnDefinition)?编辑:进一步阐明我的问题:当我添加一个新的非空列时,我需要Hibernate更新现有架构

java - hibernate中实现结果分页(获取总行数)

如何在Hibernate中实现分页?Query对象具有称为setMaxResults的方法和setFirstResult这当然有帮助。但是我在哪里可以获得结果总数,以便我可以显示结果最后一页的链接,并打印诸如xxx的结果200到250之类的东西? 最佳答案 您可以使用Query.setMaxResults(intresults)和Query.setFirstResult(intoffset)。编辑也是如此:没有办法知道您会得到多少结果。因此,首先您必须使用“selectcount(*)...”进行查询。有点丑,恕我直言。

java - 如何使用 hibernate/jpa 注释将一个类映射到不同的表

我目前遇到了一个看似非常简单的问题,但我似乎找不到解决方法:我有2个相同的表:tbl_creditcard_approved_txnstbl_creditcard_declined_txns两者中的字段是相同的,我有一个类-Transaction用于表示表中所有适当的字段。我正在尝试将两个不同的实体(每个表一个)映射到上述类。在旧世界中,我会创建两个hbm.xml文件,每个表一个,并将它们都映射到Transaction。然后,我会在持久化过程中使用实体名称,以确保对象持久化在正确的表中,具体取决于具体情况。我目前正在尝试使用注释来实现相同的目的,但到目前为止还没有成功地将这2个实体映射

java - Hibernate 4.0.0Final SessionFactory.openSession(拦截器拦截器)在哪里

我尝试了来自hibernate4.0interceptors的一些代码,它给出了使用session级拦截器的代码:Sessionsession=sf.openSession(newAuditInterceptor());但是,我同时检查了hibernate-core4.0源代码和onliehibernate4.0java-doc,类SessionFactory没有方法openSession(Interceptorinterceptor),但是hibernate3.6java-doc确实有这个方法。有人知道方法移动到哪里了吗?如果弃用,为什么文档仍将其保留在教程文档中?以及我应该如何在4