Spring JPA映射 - 第一步

时间:2016-02-14 16:18:14

标签: java spring hibernate jpa

我有课程用户:

@Entity
public class User {

@Id
@GeneratedValue
private Integer id;
private String name;
private String password;

@ManyToMany
@JoinTable
private List<Role> roles;
}

类所有者继承自用户

@Entity
public class Owner extends User {

    private String pesel;
    private String adress;

    @OneToMany(cascade={CascadeType.PERSIST, CascadeType.REMOVE})
    private List<Pet> pets;
}

并且所有者有宠物

public class Pet {

    @Id
    @GeneratedValue
    private Integer id;
    private String name;
    private String weight;

    @ManyToOne
    private Owner owner;
}

启动应用程序时为什么会出错:

  

org.springframework.data.mapping.PropertyReferenceException:没有   找到属性用户类型Pet!

- 编辑 首先我有版本,如下: enter image description here

现在我尝试将用户实例分享给医生和动物的所有者

enter image description here

问题是我不知道我是否正在进行映射,因此想问一下它是否必须看起来像

- EDIT2

我简化了方案,以便更好地说明会发生什么

enter image description here

- EDIT3

目前我的对象已经呈现:

@Entity
public class Pet {

    @Id
    @GeneratedValue
    private Integer id;

    private String name;
    private String weight;
}

用户

@Entity
public class User {

    @Id
    @GeneratedValue
    private Integer id;

    private String name;

    private String password;

    @ManyToMany
    @JoinTable(name="user_roles")
    private List<Role> roles;

}

PetOwner

@Entity
public class PetOwner extends User {

    private String pesel;
    private String adress;

    @OneToMany(mappedBy="petOwner")
    private List<Pet> pets;
}

1 个答案:

答案 0 :(得分:0)

我替换

 @ManyToOne
        private Owner petOwner;

  divs.on("mousemove", function() {
    var top = (d3.event.pageY) + "px";
    var left = (d3.event.pageX) + "px";
    console.log(top + " " + left);
    tooltip.style("top", top).style("left", left);
  });

它有效。你有PetOwner课吗?

还提供日志错误以获取有关它的更多信息