J'essaie d'y parvenir avec Hibernate :
Mes codes sont les suivants :
Modèle de dispositif
@Entity
public class Device {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(nullable = false)
private long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "fk_user", nullable = true, referencedColumnName = "ID")
private User user;
...
}
Modèle statistique
@Entity
public class Statistic {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(nullable = false)
private long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({ @JoinColumn(name = "fk_device", nullable = false, referencedColumnName = "ID"),
@JoinColumn(name = "fk_device_user", nullable = false, referencedColumnName = "fk_user") })
private Device device;
...
}
Cependant, il y a une erreur disant qu'il n'y a pas de colonne logique fk_user dans le périphérique.
Caused by: org.hibernate.MappingException: Unable to find column with logical name: fk_user in device
Je suppose que c'est parce que fk_user est une clé étrangère. Mais comment puis-je résoudre ce problème ? Merci.