使用Hibernate,并得到“无法获得通过反射字段值”错误

使用Hibernate,并得到“无法获得通过反射字段值”错误

问题描述:

我使用Hibernate来映射和类,但我得到和错误。我的地图是一个学生有很多学科的。我首先使用postgres创建数据库。谢谢!使用Hibernate,并得到“无法获得通过反射字段值”错误

CREATE TABLE aluno 
(
    idAluno serial, 
    datanascimento date, 
    matricula character varying(255), 
    nome character varying(255), 
    CONSTRAINT pkAluno PRIMARY KEY (idAluno) 
); 

CREATE TABLE materiaaluno 
(
    idCurso serial, 
    nome character varying(255), 
    idAluno integer NOT NULL, 
    CONSTRAINT pkMateriAluno PRIMARY KEY (idcurso), 
    CONSTRAINT fkAluno FOREIGN KEY(idAluno) REFERENCES aluno(idAluno) 
); 

警告:#{alunoBean.salvar()}:java.lang.Exception的:不能获得通过的modelo.Materia.idcurso javax.faces.FacesException反射吸气字段值:#{ alunoBean.salvar()}:java.lang.Exception的:无法通过modelo.Materia.idcurso的反射吸气得到一个字段值

Aluno类

package modelo; 

import java.io.Serializable; 
import java.util.Date; 
import java.util.List; 
import java.util.Objects; 
import javax.persistence.CascadeType; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.OneToMany; 
import javax.persistence.Table; 
import javax.persistence.Temporal; 
import javax.persistence.TemporalType; 

@Entity 
@Table(name = "aluno") 
public class Aluno implements Serializable { 

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
@Column(name = "idaluno") 
private Integer idaluno; 

@Column(name = "nome") 
private String nome; 

@Temporal(TemporalType.DATE) 
@Column(name = "datanascimento") 
private Date datanascimento; 

@Column(name = "matricula") 
private String matricula; 

@OneToMany(mappedBy = "aluno", cascade = CascadeType.ALL) 
private List<Materia> materias; 

// contructors, getters and setters 

} 

母校IA类

package modelo; 

import java.io.Serializable; 
import java.util.Objects; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.FetchType; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.JoinColumn; 

import javax.persistence.ManyToOne; 
import javax.persistence.Table; 

@Entity 
@Table(name = "materiaaluno") 
public class Materia implements Serializable { 

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
@Column(name = "idcurso") 
private Integer idcurso; 

@Column(name = "nome") 
private String nome; 

@ManyToOne(fetch = FetchType.LAZY) 
@JoinColumn(name = "idaluno") 
private Aluno aluno; 

// constructor, getters and setters 
} 
+0

您确定这是一个hibernate异常而不是JSF吗? 'javax.faces.FacesException' –

你可能忘了在实体Materia/miswrote的getter和setter方法。
Hibernate尝试通过反射来访问这些字段,否则它无法执行。

查看字段idcurso

+0

我的朋友给了我同样的建议,我尝试尝试,但不能正常工作,我检查每个getter和setter后,我产生的所有自动继续,但给出相同的埃罗。我非常感谢您提供的任何帮助。链接pastebin [链接](https://pastebin.com/mqE1nGy5) –