Несколько объектов отображаются в один объект в Hibernate через один столбец - PullRequest
0 голосов
/ 05 марта 2019

У меня есть медиа-элемент, который можно прикрепить к пользователю, статье, бизнесу, продукту и другим объектам.

Лучший способ, который я нашел для решения этой проблемы, это иметь "object_id"", который является внешним ключом, и" object_type ", который будет содержать тип объекта (продукт, пользователь, статья и т. д.).

Является ли это лучшим подходом для создания объекта Media?

@Entity
@Table(name = "media")
public class Media implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", updatable = false, nullable = false)
    private Long id;

    @Size(max = 25)
    @Column(name = "filename", nullable = true, unique = false)
    private String filename;

    @Size(max = 12)
    @Column(name = "object_type", nullable = true, unique = false)
    private String objectType;

    @Column(name = "object_id", nullable = true, unique = false)
    private Long objectId;

    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
    @Where(clause = "object_type = business")
    @JoinColumn(name = "object_id", referencedColumnName = "id", updatable = false, insertable = false)
    private Business business;

    ... ... ... //briefed
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...