У меня есть ресурс, который необходимо открыть через службу поддержки. Я хочу, чтобы у него было несколько ревизий ресурса (каждый раз, когда он обновляется). У меня есть идентификатор (идентификатор ресурса) и Subid (ревизии) идентификаторHibernate Entity с первичным идентификатором и идентификатором ревизии
id 1 subid 0
id 1 subid 1
id 1 subid 2
id 2 subid 0
В post here я попытался с идентификатором ресурса автоинкрементного и Subid (увеличивающегося программно на каждом обновлении) Таблица
CREATE TABLE `SomeEntity` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`subid` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`,`subid`),
Entity
private long id;
private int subid;
@Id
@Column(name = "id")
public long getId() {
return id;
}
@Id
@Column(name = "subid")
public int getSubid() {
return subid;
}
Как и в ответ на связанный пост Одним возможным решением является иметь дополнительный столбец конкатенации идентификатора и Subid, что позволяет Fe tching назначенный идентификатор для создания.
Имеется ли какая-либо информация о создании пользовательского SelectGenerator для достижения инкрементного идентификатора и субада?
Если я дам автоинкремент для id.Что было бы лучшим способом достичь этого?
Я могу добиться аналогичной вещи, имея @EmbeddedId в SomeEntity и используя некоторый код генератора для назначения embeddedId.id в создании и увеличении версии embeddedId.version в update.With этой таблицы вы можете объяснить, как будет идентификатор и версия, назначенная SomeEntity во время создания/обновления? – bl3e
Вам придется обрабатывать версию самостоятельно (возможно, вы можете использовать простые '@ PrePersist' и' @ PreUpdate'. 'SomeEntity.id' будет назначаться автоматически, так как это отношение ManyToOne, поэтому hibernate автоматически назначит идентификатор – Augusto
В методах создания и обновления я использую entitymanager, persist (..). Будет ли он присваивать идентификатор автоматического инкремента только тогда, когда идентификатор отсутствует в объекте, то есть во время создания? Также необходимо проверить, доступен ли назначенный идентификатор в объекте так как мне нужно вернуть назначенный идентификатор в create.As в другом сообщении без @GeneratedValue назначенный идентификатор не был отражен в объекте – bl3e