2016-02-14 3 views
1

У меня есть класс User:Spring 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; 
} 

и владелец Pet

public class Pet { 

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

    @ManyToOne 
    private Owner owner; 
} 

Почему при запуске приложения получает ошибка:

org.springframework.data.mapping.PropertyReferenceException: No property user found for type Pet!

--edit Сначала я версия, которая была следующим образом: 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; 
} 
+0

в классе Pet, вы @ManyToOne частного PetOwner petOwner. Где класс PetOwner? Также владелец класса не наследует пользователя, он расширяет пользователя –

+0

Sry. Ошибка в моем сообщении. Теперь все в порядке – Adamo

+1

Что вы на самом деле пытаетесь запустить? Где и когда происходит это исключение? Вы забыли добавить это. И каковы параметры @JoinTable для списка ? –

ответ

0

заменяю

@ManyToOne 
    private PetOwner petOwner; 

для

@ManyToOne 
     private Owner petOwner; 

и она работает. У вас есть класс PetOwner?

также обеспечивает ошибку журнала, чтобы получить более подробную информацию об этом

+0

Да, у меня есть. Класс PetOwner – Adamo

+0

ОК, так что ваш субъект Владелец - PetOwner, а не Владелец, а также на вашем элементе Pet, который вам нужно добавить @Entity – mvlaicevich

+0

Посмотрите на сообщение. Я просто отредактировал его – Adamo