使用Spring启动保存关系JPA

时间:2017-11-16 23:18:34

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

我正在注册,我有字段

  • Nome:
  • Data de Nascimento:
  • InscriçãoEstadual:
  • NomeResponsável:
  • CPFResponsável:
  • Cep:
  • Bloco:
  • Número:

    当我保存时,我无法从PessoasEnderecos类中写入数据,其他数据正在记录正常。我在屏幕上获取了所有数据,以至于我调试了浏览器以查看..

它没有显示错误。有谁知道我错过了什么?

我的班级Pacientes

@Entity
@Table(name = "pacientes", schema = "sau")
public class Pacientes implements Serializable  {

    private static final long serialVersionUID = 5776384003601026304L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idPaciente")
    private Long idPaciente;


    @JoinColumn(name="idPessoa")
    @ManyToOne(cascade = CascadeType.ALL)
    private Pessoas pessoa;


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


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

    public Pacientes() {
    }
    //gets and sets
    } 

我的班级Pessoas

@Entity
@Table(name = "pessoas", schema="glb")
public class Pessoas implements Serializable {


    private static final long serialVersionUID = -4042023941980758267L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    private Long idPessoa;


    @Temporal(TemporalType.DATE)
    private Date dataNascimento;   

    private String inscricaoEstadual;   

    private String inscricaoMunicipal;    

    private String nome;

    public Pessoas() {
    }
  //gets and sets

} 

@Entity
@Table(name = "pessoas_enderecos" ,schema="glb")
public class PessoasEnderecos implements Serializable  {


    private static final long serialVersionUID = -2560542418318988673L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long idPessoaEndereco;

    private String bloco;

    private String cep;

    private String numero;

    @JoinColumn(name="idPessoa")
    @ManyToOne(optional = false, cascade = CascadeType.ALL)
    private Pessoas pessoa;



    public PessoasEnderecos() {
    }

//gets and sets

}

我的方法

类控制器

@RequestMapping(method = RequestMethod.POST, value = "/pacientes")
    public Pacientes cadastrarPacientes(@RequestBody Pacientes pac) {    
        return pacientesService.cadastrar(pac);
    }

班级服务

public Pacientes cadastrar(Pacientes pacientes){        
        return pacRepository.save(pacientes);       
    } 

类库

public interface PacientesRepository extends JpaRepository<Pacientes, Integer> {


}

1 个答案:

答案 0 :(得分:0)

您还应在@OneToMany中添加关联Pacientes

public class Pacientes implements Serializable {
...
    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "pessoa")
    @PrimaryKeyJoinColumn
    private List<PessoasEnderecos> pessoasEnderecos = new ArrayList<>();

<强>更新

and your JSON should be something like this:

{
  "nomeResponsavel": "abc",
  "pessoasEnderecos": [
    {
      "bloco": "sdds",
      "cep": "sdasdsad",
      "numero": "sdasdsa"
    }
  ]
}