休眠-使用注释进行一对一映射

Sumodh S

我想将班级地址映射到班级员工,到目前为止我要做的事情如下。

我的员工班

@Entity(name = "EMPLOYEE")
public class Employee  {
    @Id @GeneratedValue
    @Column(name="EMPLOYEEID", length =30)
    int id;
    public Employee(String string, String string2,String string3, String string4) {
    this.name=string;
    this.age=string2;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    @Column(name="NAME", length = 30)
    String name;
    @Column(name="AGE",  length = 30)
    String age;
    @OneToOne(mappedBy = "employee", cascade = CascadeType.ALL)
    Address address;
    public Address getAddress() {
        return address;
    }
    public void setAddress(Address address) {
        this.address = address;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }

我的地址是

@Entity(name="Address")
public class Address {
    @Id
    @Column(name="EMPLOYEEID", length =30)
    @GenericGenerator(name="generator", strategy="foreign", parameters = @Parameter(name="property", value="employee"))
    @GeneratedValue(generator="generator")
    int id;
    @Column(name="LINE1", length=30)
    String line1;
    @Column(name="LINE2", length=30)
    String line2;
    @Column(name="LINE3", length=30)
    String line3;
    public String getLine1() {
        return line1;
    }
    public void setLine1(String line1) {
        this.line1 = line1;
    }
    public String getLine2() {
        return line2;
    }
    public void setLine2(String line2) {
        this.line2 = line2;
    }
    public String getLine3() {
        return line3;
    }
    public void setLine3(String line3) {
        this.line3 = line3;
    }
}

但是每当我尝试执行它时,我都会得到错误

未知映射于:com.hibernatetest.company.Employee.address,引用属性未知:com.hibernatetest.company.Address.employee

我在这里做错了什么?

默认语言环境

您引用了以下不存在的属性Address

@OneToOne(mappedBy = "employee", cascade = CascadeType.ALL)
Address address;

查看有关OneToOne.mappedBy()的文档

(可选)拥有关系的字段。仅在关联的反(非所有权)侧指定此元素。

因此,您的代码声明该Address实体具有一个employee拥有关系的字段但是它没有这样的属性。

可能可以用以下代码实现此属性(免责声明:我没有测试它,我不知道它是否适合您的特定情况):

@OneToOne(optional=false)
@JoinColumn(name="EMPLOYEEID")
Employee employee;

public Employee getEmployee() {
     return employee;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

一对一休眠映射

来自分类Dev

休眠一对一映射

来自分类Dev

使用联接表进行休眠的一对一单向映射

来自分类Dev

一对一休眠

来自分类Dev

休眠一对多注释映射

来自分类Dev

休眠一对多注释映射

来自分类Dev

休眠一对一映射。模式生成问题

来自分类Dev

一对一映射休眠且不为null

来自分类Dev

休眠一对一映射外键null

来自分类Dev

通过FK映射一对一休眠

来自分类Dev

Spring Boot +休眠一对一映射

来自分类Dev

休眠中的异常(一对一)

来自分类Dev

休眠一对一关系

来自分类Dev

休眠一对一关系

来自分类Dev

休眠一对一关系

来自分类Dev

休眠一对一关系

来自分类Dev

休眠一对零或一映射。例外:试图从 null 一对一属性分配 id?

来自分类Dev

在休眠中使用一对一关系删除

来自分类Dev

在休眠状态下,如何在具有复合键的2个表之间进行一对一映射?

来自分类Dev

在另一个充当主键的实体上休眠一对一映射

来自分类Dev

休眠中的关系映射,一对一还是多对一?

来自分类Dev

休眠投影/延迟加载(不需要的一对一映射)

来自分类Dev

在单个表中的复合外键和主键上休眠一对一映射

来自分类Dev

如何在休眠一对一映射中更新和删除记录?

来自分类Dev

休眠中具有相同主键的一对一单向映射

来自分类Dev

休眠-集的一对多映射-批注

来自分类Dev

休眠一对多映射配置

来自分类Dev

休眠一对一关系错误

来自分类Dev

春季休眠多人一对一关系