Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “休眠错误”;运算符不存在:bigint=字符变化“;_Java_Spring_Hibernate_Jpa - Fatal编程技术网

Java “休眠错误”;运算符不存在:bigint=字符变化“;

Java “休眠错误”;运算符不存在:bigint=字符变化“;,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我使用hibernate读取数据库数据,但在运行查询时,表之间的关系有问题。我也找不到原因 这就是错误: 2021-01-23 18:16:55.427警告1192---[nio-8080-exec-2]o.h.engine.jdbc.spi.SqlExceptionHelper:SQL错误:0,SQLState:42883 2021-01-23 18:16:55.427错误1192---[nio-8080-exec-2]o.h.engine.jdbc.spi.SqlExceptionHelpe

我使用hibernate读取数据库数据,但在运行查询时,表之间的关系有问题。我也找不到原因 这就是错误:

2021-01-23 18:16:55.427警告1192---[nio-8080-exec-2]o.h.engine.jdbc.spi.SqlExceptionHelper:SQL错误:0,SQLState:42883 2021-01-23 18:16:55.427错误1192---[nio-8080-exec-2]o.h.engine.jdbc.spi.SqlExceptionHelper:错误:运算符不存在:bigint=字符变化 Dica:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。 波西昂:384

这就是问题所在:

public interface QueryUsuario extends CrudRepository<EntidadeUsuario, Integer> {
    
    @Query(value = "select * from usuario where email = :email", nativeQuery = true)
    public EntidadeUsuario consultaUsuarioPorPorEmail(@Param("email") String email); 

}
public void consultaUsuario(String email) {
    var x = queryUsuario.consultaUsuarioPorPorEmail(email);
}
实体:

@Getter
@Setter
@Table(name = "usuario")
@Entity
public class EntidadeUsuario {

    @Id
    @Column(name = "id_usuario")
    String idUsuario;
    
    @Column(name = "cd_usuario")
    String usuario;
    
    @Column(name = "senha")
    String senha;
    
    @Column(name = "email")
    String email;

    @Column(name = "nome")
    String nome;
    
    @Column(name = "descricao")
    String descricao;
    
    @Column(name = "endereco")
    String endereco;
    
    @Column(name = "foto")
    String fotoBase64;

    @Column(name = "dt_atz")
    Date data;

    @OneToMany(mappedBy = "idUsuario")
    private List<EntidadeUsuarioCursos> entidadeUsuarioCursos;
    
    // @OneToMany(mappedBy = "usuario")
    // private List<EntidadeGrupoEstudoUsuario> entidadeGrupoEstudoUsuario;
}

@Getter
@Setter
@Table(name = "usuario_perfil_cursos_interesse")
@Entity

    public class EntidadeUsuarioCursos {
    
        @Id
        @Column(name = "id_usuario_perfil_cursos_interesse")
        Integer idUsuarioPerfilCursosInteresse;
        
        @Getter(AccessLevel.NONE)
        @ManyToOne
        @JoinColumn(name = "id_usuario")
        EntidadeUsuario idUsuario;
        
        @Column(name = "id_curso")
        Integer idCurso;
        
        @Column(name = "dt_atz")
        Date data;
        
    }

我明白了,错误是因为EntidadeUsuario的id是一个整数,而不是字符串。 我改变这一点:

@Id
@Column(name = "id_usuario")
String idUsuario;
为此:

@Id
@Column(name = "id_usuario")
Integer idUsuario;

当我注释行private List entidadeUsuarioCursos时;整个地球都在消失
@Id
@Column(name = "id_usuario")
Integer idUsuario;