草庐IT

java - 来自 EclipseLink 的 PersistenceUnitLoadingException

我已经开发了一个jpa示例,但是没问题但是我在使用jpa运行另一个示例时遇到错误,下面给出了一个错误on[EclipseLink-30005](EclipsePersistenceServices-2.0.2.v20100323-r6872):org.eclipse.persistence.exceptions.PersistenceUnitLoadingExceptionExceptionDescription:AnexceptionwasthrownwhilesearchingforpersistencearchiveswithClassLoader:sun.misc.Launch

java - Spring 单元测试 JPA 存储库

我是Spring框架的新手。我需要为JPA存储库编写单元测试。我正在尝试简单的存储库saveAndFlush()方法。但是我的存储库中没有任何内容。这是我的源代码:测试上下文类@Configuration@PropertySource("classpath:log4j.properties")publicclassTestContext{@BeanpublicRoleServiceroleService(){returnMockito.mock(RoleService.class);}@BeanpublicRightServiceRightService(){returnMockito

java - JPA Criteria 使用单表继承查询实体层次结构

假设我有以下实体:@Entity@Inheritance(strategy=SINGLE_TABLE)@DiscriminatorColumn(name="type")publicabstractclassBaseEntity{privateDatesomeDate;privateDateotherDate;privatebooleanflag;}@Entity@DiscriminatorValue("entity1")publicclassEntity1extendsBaseEntity{privateStringsomeProperty;}@Entity@Discriminator

java - Spring 数据 JPA : Delete Optimistic Locking semantics

有一个实体Foo带有@Version列。如果我想删除它,我希望SpringDataJPA和/或Hibernate检查@Version列的当前值是否与数据库中的值匹配。如果不是,删除应该被拒绝。这与分离实体的预期一样有效:@Transactionalpublicvoiddelete(Foofoo){fooRepository.delete(foo);//throwsObjectOptimisticLockingFailureException}但是,如果我先从存储库加载实体,然后使用不同版本在同一事务中删除它,则无论@Version列的值如何,删除都会通过:@Transactionalp

java - 如何使用 JpaRepository 和嵌套的对象列表进行搜索?

描述有一个PersonRepository和Person实体,Person类包含List.Qualification类有3个简单的字段。我尝试添加@Query注释自定义方法并使用JPQL获取结果,但是Qualification类字段在JPQL中不可用于操作,因为它存储库本身包含List而不仅仅是Qualification的简单字段.如何通过这些资格的嵌套字段进行搜索?查询现在我需要找到资格的experienceInMonths大于3且小于9且资格的名称字段='java'的人员实体列表。代码Person.java@Data@EntitypublicclassPerson{@Id@Gene

java - 如何初始化 Spring Data JPA 规范?

我有一个使用过滤器进行搜索的方法,所以我使用Specification构建动态查询:publicPagesearchFoo(@NotNullFooprobe,@NotNullPageablepageable){Specificationspec=Specification.where(null);//isthisok?if(probe.getName()!=null){spec.and(FooSpecs.containsName(probe.getName()));}if(probe.getState()!=null){spec.and(FooSpecs.hasState(probe.

java - 我是否应该经常调用 EntityManager.clear() 以避免内存泄漏?

我是JPA/OpenJPA的新手,我注意到如果我在持久化实体后不调用EntityManager.clear(),我会得到一个OutOfMemoryError(我不断在循环中添加新实体)。我不确定这是预期的行为还是只是OpenJPA1.2.1故障。那么,我是否需要自己明确分离实体?如果我不是,这仍然是一个好习惯吗? 最佳答案 我对JPA没有太多经验。不过这很有用-在JPA中,您必须:-为每个事务创建一个新的EntityManager。-在每个事务后调用clear()以清除持久性上下文。 关

java - 在 IntelliJ 中基于 JPA 实体绘制数据库架构

有谁知道IntelliJ有没有插件可以根据JPA实体类绘制数据库模式图? 最佳答案 IntelliJ(终极版)可以生成ER图,无需任何额外插件。它可以从“持久性”Pane的上下文菜单中获得。要获得该Pane,您需要先向您的模块添加一个“JPA”方面。 关于java-在IntelliJ中基于JPA实体绘制数据库架构,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6867535/

java - Hibernate 自动版本控制

我开发了一个客户维护应用程序。用户可以通过网络界面更改客户详细信息。我想处理以下场景:用户1加载customer1详细信息。User2加载customer1详细信息。User1更改并保存customer1的name。User2仅更改并保存customer1的年龄。在上面的场景中,最终数据库保存了customer1的旧名字和新年龄,因为User2覆盖了User1的更新.我正在使用hibernate。我听说HibernateAutomaticVersioning支持这个。如果有人知道如何处理这个问题,请告诉我。 最佳答案 你只需要添加一

java - 具有实体 ElementCollection 键的 JPA 级联持久性

我有两个这样的JPA实体:@EntityclassFoo{@Idprivatelongid;//...}@EntityclassBar{@ElementCollection(targetClass=String.class,fetch=FetchType.LAZY)@MapKeyJoinColumn(name="foo_id",referencedColumnName="id")@MapKeyClass(Foo.class)@Column(name="content")@CollectionTable(name="bar_foo_content",joinColumns=@JoinCo