Я строю проект, используя платформу Play, и у меня возникают проблемы с освоением JPA @OneToOne relationships
.
В настоящее время у меня есть два класса:
Объект пользователя
@Entity
@Table( name="users" )
public class Users extends Model {
@OneToOne( mappedBy="userId", fetch=FetchType.LAZY, cascade = CascadeType.ALL )
@ForeignKey( name="userId", inverseName="userId" )
UserSettings userSettings;
public userId;
public userName;
}
Настройки пользователя
@Entity
@Table( name="user_settings" )
public class UserSettings extends Model {
@OneToOne( cascade = CascadeType.ALL,targetEntity=User.class )
public String userId;
public String xml;
public UserSettings( String userId ){
this.userId = userId;
}
}
Идея состоит в том, что я пытаюсь установить поле userId
в User
как внешний ключ в UserSettings
.Я пробовал несколько разных способов добиться этого, и мой код всегда выдает ошибку.Наиболее распространенная ошибка, которую я получаю: Ссылочное свойство не является (One | Many) ToOne .
Однако, когда я пытаюсь установить userId
в UserSettings
, используя код выше, Я получаю следующее исключение:
Обнаружено исключение javax.persistence.PersistenceException, org.hibernate.PropertyAccessException: не удалось получить значение поля по отражателю getter для reader.User.id
Может кто-нибудь помочь объяснить, как я могу достичь желаемой цели?