草庐IT

Hibernate

全部标签

java - JPA/Hibernate 可以与其他持久性框架(如 jOOQ)结合使用吗

我们有一个域,其中90%的类都非常简单,可以轻松地在数据库中进行1:1映射。我很高兴Hibernate与spring-data-jpa的结合为这些类消除了大量的琐事。然而,域的其余部分具有挑战性,出于多种原因,我不想将其直接映射到数据库表。我做了实验来引入由Hibernate管理的中间bean并将这些bean映射到我的域,当所有关系都从具有挑战性的部分到容易的部分时,这很有效。当我有由Hibernate管理的“简单”类引用映射到自定义Java代码中的“具有挑战性的”类而不是直接由Hibernate管理时,这种方法失败了。这是当我意识到我无法找到自定义Hibernate和插入某种Obje

java - 如何使用 TestNg 对 Hibernate、H2 进行测试?

什么是测试DAO层的正确方法?我在创建和销毁SessionFactory时使用了@BeforeMethod和@AfterMethod注释方法,但它不适用于多个测试。如果测试一个接一个地运行,但当它们一起运行时没有使用maven构建,所以我决定我应该使用TestNg组对它们进行分组并执行@BeforeGroup和@AfterGroup方法,其中我对Hibernate做了同样的事情。所以我做了这样的事情:@Test(groups={"integration"})publicclassIntegrationTest{protectedSessionFactorysessionFactory;

java - 实现缓存 Spring 方法级注解 vs Hibernate 二级缓存

我正在致力于实现某些静态数据的缓存。我有两种方法:使用Spring框架注释使用方法级缓存。启用二级缓存,以便hibernate管理数据缓存哪种方法效果最好?我必须考虑哪些事项? 最佳答案 如果一切都平等考虑更喜欢方法调用结果的Spring缓存,原因是在服务层级别进行缓存更容易推理。Hibernate二级缓存工作正常,但在我看来它更难推理并且有更多缺陷。例如,它不适用于查询,仅适用于通过ID查找或加载惰性关联。实际上惰性关联的加载默认情况下是关闭的,需要在集合级别使用特定于hibernate的注释来启用。要查询查询的结果,您还需要使用

java - hibernate 是否支持 count(*) over()

我试图避免为计数创建一个单独的查询,为实际查询创建一个单独的查询。我发现SessionImpl::createQuery需要花费大量时间进行复杂查询,然后通过结合计数和主查询,我可以消除一个createQuery调用。在SQL中我可以做类似的事情selectcount(*)over(),col_A,col_BfromTABLE_XXwherecol_C>1000hibernate可以实现吗?(我试图避免使用原生sql并坚持使用HQL和分离条件。使用原生SQL违背了使用hibernate的目的。我的系统必须同时支持Oracle和Sybase) 最佳答案

java - Spring Data Rest 多对多 POST

首先,让我解释一下我的用例。这很简单。有一个用户实体和一个服务实体。我使用UserService作为连接实体(连接表)在用户和服务之间建立了多对多关联。最初,会有一些用户集和一些服务集。用户可以随时订阅任何服务。在这种情况下,将向UserService添加一个条目。但是,当我尝试创建新的UserService关联时出现空指针异常。我可以单独创建用户和服务。我的实体是:用户.javapackagedao.models;importjava.io.Serializable;importjavax.persistence.*;importcom.fasterxml.jackson.annot

java - 有没有办法用 Hibernate/JPQL 查询 PostgreSQL hstore?

假设我有一个如下所示的Hibernate/JPA实体:@EntitypublicclassFooEntity{...@Type(type="hstore")HashMaptags;}...和hstore类型是来自this的简单UserType实现资源。有没有一种方法可以在类似于此伪代码的JPQL查询中访问hstore:SELECTfFROMFooEntityfWHEREf.tagsCONTAINSKEY(:key) 最佳答案 您也可以简单地创建一个Hibernateorg.hibernate.usertype.UserType。你扩

java - 如何使用 native SQL 作为在 Hibernate 中使用 Criteria API 进行的更大查询的片段(where 子句)?

我有以下问题。在我正在开发的应用程序中,我们使用Hibernate,每个查询都是用CriteriaAPI编写的。现在,在某些地方,我们希望增加用户编写一些SQL代码的可能性,这些代码将用作查询中where子句的一部分。所以基本上,用户可以按照自己的方式从数据库中过滤显示给他的数据。几天来,我一直在努力寻找一种方法来修改我们以前的查询以获得上述结果。这是我所知道的:看起来您无法将CriteriaAPI与nativeSQL结合使用。您可以用SQL编写整个查询或仅使用条件API。那正确吗?我问这个问题是因为它是最简单的解决方案,只需将此SQL代码用作我们查询中where子句中的另一个谓词。但

java - Hibernate Composite key Criteria Join

我正在尝试通过复合键执行多个连接。我正在使用别名来强制创建连接,但似乎连接不是由Hibernate生成的。我不知道为什么会这样。我可以让它与nativeSQL查询一起使用,但在使用条件时无法使用。我怀疑这可能与复合键定义的映射方式有关(参见BusinessServiceUser上的associationOverrides)下面是我的域模型类和查询信息。欢迎任何想法:)商务服务@Entity@Table(name="business_services")publicclassBusinessServiceextendsAbstractEntityimplementsSerializabl

java - Spring JPA/Hibernate 事务强制插入而不是更新

已编辑。虽然扩展基础存储库类并添加插入方法会起作用,但更优雅的解决方案似乎是在实体中实现Persistable。查看可能的解决方案2我正在使用springframework.data.jpa创建一个服务,使用JpaTransactionManager将Hibernate作为ORM。遵循此处教程的基础。http://www.petrikainulainen.net/spring-data-jpa-tutorial/我的实体存储库扩展org.springframework.data.repository.CrudRepository我正在使用一个遗留数据库,它使用有意义的主键而不是自动生成

参数解析器后的 Java 手动验证

我有一个像这样的休息Controller:@RequestMapping(value="/foo",method=RequestMethod.POST)@ResponseBodypublicResponseEntitygetFOOs(@ValidPayloadpayload){/**somecode**/}Payload类如下所示:@OneOrTheOther(first="a",second="b")publicfinalclassPayload{privatefinalStringuserName;privatefinalStringa;privatefinalStringb;@N