2017-09-02 64 views
-1

我使用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' –

回答

0

你可能忘了在實體Materia/miswrote的getter和setter方法。
Hibernate嘗試通過反射來訪問這些字段,否則它無法執行。

查看字段idcurso

+0

我的朋友給了我同樣的建議,我嘗試嘗試,但不能正常工作,我檢查每個getter和setter後,我產生的所有自動繼續,但給出相同的埃羅。我非常感謝您提供的任何幫助。鏈接pastebin [鏈接](https://pastebin.com/mqE1nGy5) –