Я новичок в JPA-Hibernate, и я хотел знать, как мне обновить таблицу соединений, объявленную в моей базе данных PostgreSQL.
В моих таблицах есть просмотр:
Таблица укрытий
Таблица изображений
Таблица SheltersXImages
Я хотел бы обновить свою таблицу SheltersXImages, которые имеют уникальный составной ключ, состоящий из 2 внешних ключей: «str_id» из таблицы «Укрытия» и «img_id» из таблицы изображений.
Должен ли я:
- Создать объект для представления SheltersXImages Сформировать таблицу и создать репозиторий для вставки в таблицу SheltersXImages вручную?
- Найти более подходящую идею? Я нашел некоторые предметы, касающиеся аннотаций @IdClass @EmbeddedId или @JoinTable, но, как я уже сказал, я новичок, и я не совсем понимаю, могу ли я использовать их для решения своей проблемы и какое решение является наиболее подходящим.
В данный момент на моих объектах просматриваются:
Объект "Укрытие"
open class SheltersStrEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "shelters_generator")
@SequenceGenerator(name="shelters_generator", sequenceName = "v1.shelters_str_str_id_seq", initialValue = 1, allocationSize = 1)
@Column(name = "str_id", nullable = false, insertable = false, updatable = false)
open var strId: Long? = null
@Basic
@Column(name = "str_siren", nullable = false)
open var strSiren: String? = null
@Basic
@Column(name = "str_nic", nullable = false)
open var strNic: String? = null
@Basic
@Column(name = "str_name", nullable = false)
open var strName: String? = null
@Basic
@Column(name = "str_email", nullable = false)
open var strEmail: String? = null
@Basic
@Column(name = "str_address", nullable = false)
open var strAddress: String? = null
@Basic
@Column(name = "str_zip_code", nullable = false)
open var strZipCode: String? = null
@Basic
@Column(name = "str_city", nullable = false)
open var strCity: String? = null
@Basic
@Column(name = "str_phone", nullable = false)
open var strPhone: String? = null
@Basic
@Column(name = "str_active", nullable = false)
open var strActive: Boolean? = null
@Basic
@Column(name = "str_creation_datetime", nullable = false)
open var strCreationDatetime: OffsetDateTime? = null
@Basic
@Column(name = "str_edit_datetime", nullable = false)
open var strEditDatetime: OffsetDateTime? = null
//Equals and hashcode ...
}
Объект "Изображение"
@Entity
@Table(name = "images_img", schema = "v1", catalog = "hachiko")
open class ImagesImgEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "images_generator")
@SequenceGenerator(name="images_generator", sequenceName = "v1.images_img_img_id_seq", initialValue = 1, allocationSize = 1)
@Column(name = "img_id", nullable = false, insertable = false, updatable = false)
open var imgId: Long? = null
@Basic
@Column(name = "img_name", nullable = false)
open var imgName: String? = null
@Basic
@Column(name = "img_content", nullable = false)
open var imgContent: ByteArray? = null
//Equals and hashcode ...
}
Заранее спасибо, ребята