Not-null 属性引用一个临时值 Hibernate

我有两个关系表 1 : n


多对一员工和部门一个员工只能有一个部门。


一对多,一个部门有几个员工。


departments 表已经有创建的部门 不需要创建新的部门来添加员工(只存在一个)


我的模型:Funcionario/多对一


@Entity(name="Funcionario")

@Inheritance(strategy = InheritanceType.SINGLE_TABLE)

@DiscriminatorColumn(name = "tipo", length = 1, discriminatorType = DiscriminatorType.STRING)

@DiscriminatorValue("F")

@Table(name = "funconarios")

public abstract class Funcionario implements Autenticar {


    @Id

    @GeneratedValue(strategy = GenerationType.AUTO)

    @Column(name = "codFuncionario")

    private String codFuncionario;


    @ManyToOne  

    @JoinColumn(name="codDepart", referencedColumnName="codDepart",nullable=false)  

    private Departamento departamento;


    //private Endereco endereco;

    @Column(name = "matricula")

    private String matricula;

    @Column(name = "nome")

    private String nome;

    @Column(name = "cpf")

    private String cpf;

    @Column(name = "rg")

    private String rg;

    @Column(name = "usuario")

    private String usuario;

    @Column(name = "senha")

    private String senha;

    @Column(name = "dataEntrada")

    private Date dataEntrada; 

    @Column(name = "dataSaida")

    private Date dataSaida;

    @Column(name = "dataNascimento")

    private Date dataNascimento;

    @Column(name = "salario")

    private Double salario;


//construtores  

    public Funcionario() {

    }

我的模型部门/一对多:


@Entity

@Table(name="departamento") 

public class Departamento {

    @Id  

    @GeneratedValue  

    @Column(name="codDepart") 

    private Integer codDepartamento;

    @Column(name="nome")  

    private String nomeDepartamento;


    @OneToMany(mappedBy="departamento", cascade= CascadeType.ALL)  

    private Set<Funcionario> funcionarios;  


    public Departamento() {

    }


    public Integer getCodDepartamento() {

        return codDepartamento;

    }


    public void setCodDepartamento(Integer codDepartamento) {

        this.codDepartamento = codDepartamento;

    }


    public String getNomeDepartamento() {

        return nomeDepartamento;

    }


慕田峪9158850
浏览 104回答 1
1回答

慕婉清6462132

你必须级联变化。放在你的Funcionario班级:@ManyToOne(cascade = CascadeType.ALL)@JoinColumn(name="codDepart", referencedColumnName="codDepart",nullable=false)&nbsp;&nbsp;private Departamento departamento;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java