【发布时间】:2021-01-23 21:37:59
【问题描述】:
我正在使用休眠来读取我的数据库数据,但是当我运行查询时我遇到了表的关系问题。我找不到原因 这就是错误:
2021-01-23 18:16:55.427 WARN 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;
}
sql脚本:
CREATE TABLE public.usuario (
id_usuario bigint DEFAULT nextval('public.usuario_id_seq'::regclass) NOT NULL,
cd_usuario character varying NOT NULL,
senha character varying NOT NULL,
dt_atz timestamp(0) without time zone,
email character varying,
nome character varying,
endereco character varying,
descricao character varying,
foto bytea
);
ALTER TABLE ONLY public.usuario
ADD CONSTRAINT usuario_pk PRIMARY KEY (id_usuario);
CREATE TABLE public.usuario_perfil_cursos_interesse (
id_usuario bigint NOT NULL,
id_curso bigint NOT NULL,
dt_atz timestamp(0) without time zone,
id_usuario_perfil_cursos_interesse bigint DEFAULT nextval('public.usuario_perfil_cursos_interesse_id_seq'::regclass) NOT NULL
);
ALTER TABLE ONLY public.usuario_perfil_cursos_interesse
ADD CONSTRAINT usuario_perfil_cursos_interesse_fk FOREIGN KEY (id_usuario) REFERENCES public.usuario(id_usuario);
ALTER TABLE ONLY public.usuario_perfil_cursos_interesse
ADD CONSTRAINT usuario_perfil_cursos_interesse_fk_1 FOREIGN KEY (id_curso) REFERENCES public.curso(id_curso);
【问题讨论】:
-
当我评论行私人列表
entidadeUsuarioCursos; entidadeUsuario 的错误消失了