У меня есть два класса сущностей Пользователь и WalletData Я хочу сделать связь Один пользователь ко многим кошелькам с аннотациями, но я не знаю как. Также отношение, которое я хочу передать по полю подписи, расположенному в пользовательском объекте.OnetoOne и OneToMany в спящем режиме
@Entity(name = "wallet_data")
public class WalletData implements Serializable
{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "amount")
private Double amount;
@Column(name = "currency")
private String currency;
@JoinColumn(table = "user",referencedColumnName = "signature")
private User user; //Each wallet know who is his owner user
и
@Entity
@Table(name = "user")
@XmlRootElement
@NamedQueries(
{
@NamedQuery(name = "User.findAll", query = "SELECT u FROM User u"),
@NamedQuery(name = "User.findById", query = "SELECT u FROM User u WHERE u.id = :id"),
@NamedQuery(name = "User.findByUsername", query = "SELECT u FROM User u WHERE u.username = :username"),
@NamedQuery(name = "User.findByPassword", query = "SELECT u FROM User u WHERE u.password = :password"),
@NamedQuery(name = "User.authorize", query = "SELECT u FROM User u WHERE u.password = :password and u.username = :username")
})
public class User implements Serializable
{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Basic(optional = false)
@Column(name = "username")
private String username;
@Basic(optional = false)
@Column(name = "password")
private String password;
@Column(name = "signature")
private String signature;
@JoinColumn(name = "user_id", referencedColumnName = "id")
@OneToOne(targetEntity = UserData.class)
private UserData userId;
@OneToMany(targetEntity = WalletData.class, cascade = CascadeType.ALL,mappedBy = "id")
private Set<WalletData> wallets; //The set contain all wallets of the current user
Вы забыли '@ ManyToOne'annotation на' WalletData.user'. А атрибут mappedBy должен быть 'user', так как это поле, которое составляет другую сторону ассоциации. Двунаправленные ассоциации OneToMany описаны в документации. Прочтите: http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html_single/#d5e5564 –
Спасибо, что помогли. Пожалуйста, отправьте ответ, чтобы я мог пометить его как правильно. –