【问题标题】:Crashing at start when using jpa使用 jpa 时启动时崩溃
【发布时间】:2022-10-25 00:21:05
【问题描述】:

所以,我试图将一个数据库实现到一个 kafka 监听器中,但是当我启动它时,它崩溃了,我不知道为什么。

这是代码

模型


package br.com.ottimizza.ListenerServico.domain.model;

import java.math.BigInteger;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Table;

import org.springframework.data.annotation.Id;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.NoArgsConstructor;
import lombok.Data;

@Data
@Entity
@Builder(toBuilder = true)
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "ot_log_questor_post_baixa")
public class LogQuestor {
  
  @Id
  @Column
  @GeneratedValue(strategy = GenerationType.AUTO)
  private BigInteger id;

  @Column
  Date ot_created_at;
  
  @Column
  Body ot_objeto_questor;
  
  @Column
  String ot_objeto_texto_questor;

  @Column
  String ot_status_req;

  @Column
  String ot_token_usuario;

} 

身体对象


@Data
@NoArgsConstructor
@AllArgsConstructor
public class Body implements Serializable {

  private static final long serialVersionUID = 1L;
  
  String fileLink;

  String zenTokenUsuario;

  String domain;

  String filename;

  String cnpj;

  HashMap<String, String> propriedades;

}

存储库

package br.com.ottimizza.ListenerServico.repository;

import java.math.BigInteger;
import java.util.Optional;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import br.com.ottimizza.ListenerServico.domain.model.LogQuestor;

@Repository
public interface LogQuestorRepository extends JpaRepository<LogQuestor, BigInteger> {
  
  public Optional<LogQuestor> findById(BigInteger id);
}

保存方法

import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;

  @Autowired
  LogQuestorRepository repository;

  public void saveToDB(String message, String status, String token) {
    LogQuestor reqToSv = new LogQuestor();
    //assignment of carachteristics
    repository.save(reqToSv);
  } 

注意:代码有一些被省略的东西,但没有任何错误或相关的东西,我敢肯定

我得到的错误

2022-10-21T20:32:34.903633+00:00 app[web.1]: 2022-10-21 20:32:34.903  WARN 4 --- [           main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'logQuestorRepository' defined in br.com.ottimizza.ListenerServico.repository.LogQuestorRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Cannot resolve reference to bean 'jpaMappingContext' while setting bean property 'mappingContext'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaMappingContext': Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: br.com.ottimizza.ListenerServico.domain.model.LogQuestor
2022-10-21T20:32:34.904798+00:00 app[web.1]: 2022-10-21 20:32:34.904  WARN 4 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'services': Unsatisfied dependency expressed through field 'tareffa'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'br.com.ottimizza.ListenerServico.client.ClientTareffa': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'logQuestorRepository' defined in br.com.ottimizza.ListenerServico.repository.LogQuestorRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Cannot resolve reference to bean 'jpaMappingContext' while setting bean property 'mappingContext'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaMappingContext': Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: br.com.ottimizza.ListenerServico.domain.model.LogQuestor
2022-10-21T20:32:34.905820+00:00 app[web.1]: 2022-10-21 20:32:34.904  INFO 4 --- [           main] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'

【问题讨论】:

  • stackoverflow.com/q/4381290/18157 可能重复 - 请阅读前几个答案...这里可能存在多个问题,包括使用错误的 @Id 注释类。
  • @JimGarrison 你是对的,这是错误的 id 类,非常感谢!

标签: java spring spring-boot hibernate spring-mvc


【解决方案1】:

这是错误的@Id 注释类导入。

我正在导入 import org.springframework.data.annotation.Id;

正确的是 import javax.persistence.Id;

非常感谢@JimGarrison

【讨论】:

    猜你喜欢
    • 2022-08-10
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 2018-06-01
    • 1970-01-01
    相关资源
    最近更新 更多