标签: spring-data-jpa

Hibernate中的EntityNotFoundException多数到一个映射但是存在数据

我试图通过Invoice对象获取用户时收到javax.persistence.EntityNotFoundException错误

invoice.getUser().的getId()

错误如下

javax.persistence.EntityNotFoundException: Unable to find com.indianretailshop.domain.User with id 5
    at org.hibernate.ejb.Ejb3Configuration$Ejb3EntityNotFoundDelegate.handleEntityNotFound(Ejb3Configuration.java:137)
    at org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:189)
    at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:178)
    at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:215)
Run Code Online (Sandbox Code Playgroud)

实体类如下(不包括getter和setter)

@Entity
@Table(name="users")
public class User implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(unique=true, nullable=false)
    private int id;

    .
        .
        .

    //bi-directional many-to-one association to Invoice
    @OneToMany(mappedBy="user")
    private List<Invoice> invoices;
}

@Entity
@Table(name="invoice")
public class Invoice implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(unique=true, nullable=false)
    private int id;
        .
        .
        . …
Run Code Online (Sandbox Code Playgroud)

spring hibernate jpa spring-data-jpa

43
推荐指数
5
解决办法
7万
查看次数

Spring Data JPA findOne()更改为Optional如何使用?

我正在学习SpringBoot2.0Java8.

我遵循了一些博客制作教程示例.

教程源代码是:

@GetMapping("/{id}/edit")
public String edit(@PathVariable Long id, Model model) {
  model.addAttribute("categoryDto", categoryService.findOne(id));
  return "category/edit";
}
Run Code Online (Sandbox Code Playgroud)

但是这段代码抛出了这个错误:

categoryService.findOne(ID)

我正在考虑将JPA findOne()方法更改为Optional< S >

怎么解决?

更多信息:

这是categoryService方法:

public Category findOne(Long id) {
  return categoryRepository.findOne(id);
}
Run Code Online (Sandbox Code Playgroud)

java spring spring-data-jpa

43
推荐指数
3
解决办法
7万
查看次数

自动装配失败:不是托管类型

我的文凭课程有一个很大的问题,如果你们能帮助我,我会很高兴的!我制作了一个Maven多模块项目并拥有3个"核心项目"

  • NaviClean:(父母)
  • NaviCleanDomain:包含域模型用我所有的实体和接口MeinRemoteDienst是由需要NaviCleanServerNaviCleanCleintHessianprotocol
  • NaviCleanClient:包含GUI和Hessian连接 NaviCleanServer
  • NaviCleanServer:这里是我的仓库,我到数据库连接和接口的实现einRemoteDienst NaviCleanServerNaviCleanClient具有NaviCleanDomain在Maven作为依赖.

现在每次我尝试在Tomcat上启动服务器时都会出现以下错误:

ERROR: org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'transaktionsRepository': 
Injection of persistence dependencies failed; 
nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: 
Error loading class [at.naviclean.service.impl.MeinRemoteDienstImpl] for bean with name 'meinRemoteDienstImpl' defined in file [C:\Users\Fredy\Documents\workspace-sts-3.1.0.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\NaviCleanServer\WEB-INF\classes\at\naviclean\service\impl\MeinRemoteDienstImpl.class]: 
problem with class file or dependent class; 
nested exception is java.lang.NoClassDefFoundError: at/naviclean/service/MeinRemoteDienst
at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:342)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
    ……………….
Run Code Online (Sandbox Code Playgroud)

模型库:

package at.naviclean.domain; …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc hessian spring-data-jpa

42
推荐指数
4
解决办法
16万
查看次数

如何在spring-boot中设置hibernate.format_sql?

我正在使用spring-boot自动配置进行数据库注入,并定义了属性:

spring.jpa.database=POSTGRESQL
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
Run Code Online (Sandbox Code Playgroud)

但我怎么设置hibernate.format_sql=true?弹簧靴不支持吗?

java spring spring-data-jpa spring-boot

42
推荐指数
5
解决办法
4万
查看次数

具有任意AND子句的动态spring数据jpa存储库查询

我正在使用Spring data jpa repositories,要求提供不同字段的搜索功能.搜索之前输入的字段是optional.I有5场说EmployeeNumber,Name,Married,ProfessionDateOfBirth.
这里我只需要用户查询给定的值,其他字段应该被忽略.Ex,

Input : EmployeeNumber: ,Name:St,Married: ,Professsion:IT,DateOfBirth: 
Query : Select * from Employee e where Name like 'St%' and Profession like 'IT%';  

Input : EmployeeNumber:10,Name: ,Married: ,Professsion:IT,DateOfBirth:
Query : Select * from Employee e where EmployeeNumber like '10%' and Profession like 'IT%';  
Run Code Online (Sandbox Code Playgroud)

所以我们在这里考虑输入和查询的值.在这种情况下,春季数据是具有限制中提到的这篇文章(不可扩展,所有可能出现的问题,应书面)我使用的Querydsl,但仍存在问题,null待开发领域应该被忽略,几乎所有可能的查询需要.在这case 31 queries.如果搜索字段是6,7,8...??

使用可选字段实现搜索选项的最佳方法是什么?

java spring querydsl spring-data spring-data-jpa

42
推荐指数
3
解决办法
5万
查看次数

实体类名称转换为带有下划线的SQL表名称

我定义了以下实体:

@Entity
@Table(name = "EmailTemplate")
public class EmailTemplate {
Run Code Online (Sandbox Code Playgroud)

尽管有表格注释,但我收到了java.sql.SQLException: Invalid object name 'email_template'.如何防止将诸如EmailTemplate之类的实体类转换为email_template表名?

编辑:

我正在使用Spring Boot:启动JPA.从我的build.gradle文件,

compile("org.springframework.boot:spring-boot-starter-data-jpa")
Run Code Online (Sandbox Code Playgroud)

jpa spring-data-jpa spring-boot

42
推荐指数
3
解决办法
4万
查看次数

Spring + hibernate与Spring Data JPA:它们有什么不同吗?

虽然不是新手,但我正在努力学习弹簧框架(再次!),以确保我真正理解这一点.我对核心Spring(DI)有了一个很好的想法.现在,我专注于数据层.

我遇到过" Spring and Hibernate " 这个词.我可以解释它意味着将Spring Framework与Hibernate一起用作ORM工具/ JPA提供程序.

现在我遇到了" Spring Data JPA ".我澄清了有关Spring Data JPA的内容,它是JPA的一个抽象层(在Spring Data JPA下使用Hibernate或任何其他JPA提供程序).

现在这些术语是一样的吗?也就是说," Spring + hibernate "与" Spring Data JPA "相同.如果没有,那么差异/相似之处是什么?

我真的很困惑很多条款/声明(如上所述)似乎相似,但可能会有所不同.

spring hibernate jpa spring-orm spring-data-jpa

41
推荐指数
2
解决办法
1万
查看次数

Spring Data JPA与findBy/findAllBy的区别

在以下之间使用Spring Data JPA关键字时是否有任何区别:

List<SomeEntity> findBySomeCondition();
Run Code Online (Sandbox Code Playgroud)

List<SomeEntity> findAllBySomeCondition();
Run Code Online (Sandbox Code Playgroud)

java spring spring-data spring-data-jpa

41
推荐指数
2
解决办法
2万
查看次数

如何使用Spring Data JPA保留JSR-310类型?

我正在尝试将Spring Data JPA 1.8与Java 8 Date/Time API JSR-310一起使用.

一切似乎都有效,直到我试图让所有车辆在两个LocalDateTimes之间.返回的实体数量似乎只与它应该的数量松散相关.

实体

@Repository
public interface VehicleRepository extends JpaRepository<Vehicle, Long> {

    List<Vehicle> findByDateTimeBetween(LocalDateTime begin, LocalDateTime end);

}
Run Code Online (Sandbox Code Playgroud)

知识库

@Entity
@Table(name = "VEHICLE")
public class Vehicle implements Serializable {

  private static final long serialVersionUID = 1L;

  @Id
  @Column(name = "IDX", nullable = false, unique = true)
  @GeneratedValue(strategy = GenerationType.AUTO)
  private long vehicleId;

  @Column(name = "DATE_TIME", nullable = false)
  private LocalDateTime dateTime = LocalDateTime.now();

  // Getters and Setters

}
Run Code Online (Sandbox Code Playgroud)

相关依赖

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
        <version>1.8.0.RELEASE</version>
    </dependency> …
Run Code Online (Sandbox Code Playgroud)

jpa java-8 spring-data spring-data-jpa java-time

40
推荐指数
3
解决办法
3万
查看次数

查询方法中的Spring Data可选参数

我想在存储库层中编写一些查询方法.此方法必须忽略null参数.例如:

List<Foo> findByBarAndGoo(Bar barParam, @optional Goo gooParam);
Run Code Online (Sandbox Code Playgroud)

此方法必须通过以下条件返回Foo:

bar == barParam && goo == gooParam;
Run Code Online (Sandbox Code Playgroud)

如果gooParam不为null.如果gooParam为null,则条件更改为:

bar == barParam;
Run Code Online (Sandbox Code Playgroud)

有什么解决方案吗?有人能帮我吗?

spring hibernate jpql spring-data spring-data-jpa

39
推荐指数
6
解决办法
2万
查看次数