Я пытаюсь отобразить один столбец первичного ключа таблицы A, который является внешним ключом во многих других таблицах. Как мне этого добиться.
Например, скажем, у меня есть объект «Пользователь», где «id» - это первичный ключ, а у меня есть 3 других объекта: «Фото», «Сообщение» и «Друг» * 1003. *
Как мне сопоставить PK 'id' объекта 'User' с столбцом внешнего ключа 'user_id' в объекте Photo и отобразить его в 2 столбцах 'to_user', 'from_user' в сообщении и 'user_id', ' Колонка друга_пользователя_идентификатора Друга?
Вот декальзация моей таблицы.
Пользователь
@Entity
@Table(name="user_table")
public class User implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private int id;
@Column(name="first_name")
private String firstName;
@Column(name="last_name")
private String lastName;
}
Сообщение
@Entity
@Table(name="message_table")
public class Message implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private int id;
@Column(name = "from_user")
private int fromUser;
@Column(name = "to_user")
private int toUser;
@Column(name = "message_body")
private String messageBody;
}
и Друг
@Entity
@Table(name = "friend_table")
public class Friend implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@Column(name = "user_id")
private int userId;
@Column(name = "friend_user_id")
private int friendUserId;
}
Таблица фотографий
@Entity
@Table(name="photo_table")
public class Photo implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private int id;
@Column(name="image_url")
private String imageUrl;
@Column(name="user_id")
private int userId;
}
Здесь from_user, to_user, user_id и friend_user_id - все внешние ключи. Как я должен отобразить это отображение наилучшим образом. Также, когда я хочу удалить пользователя, я хочу удалить все данные этого пользователя во всех 4 таблицах. Кто-нибудь может предложить лучший способ достичь этого?