У меня есть две сущности organization
и organizationStatus
с отношением один ко многим. Организация содержит сведения об организации (имя, адрес и т. Д.), В то время как organizationStatus
имеет ACTIVE, PENDING, BLOCKED
статусов
Организационный класс
@Entity
@Table(name = "organization", schema = "user_mgt")
public class Organization {
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "organization_status")
private OrganisationStatus organisationStatus;
}
OrganizationStatus class
@Entity
@Table(name = "organization_status", schema = "user_mgt")
public class OrganisationStatus {
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "organisationStatus")
private List<Organization> organization;
}
Сохранение будет выполнено путем создания объектов вручную. Здесь будет создан объект OrganisationStatus, который будет установлен на объект организации. Будет сохранена только организационная единица
OrganisationStatus organisationStatus = new OrganisationStatus();
organisationStatus.setStatus("ACTIVE");
Organization organization = new Organization();
organization.setName("abc");
organization.setAddress("pqr");
organization.setOrganisationStatus(organisationStatus);
// session factory create, start transaction etc..
session.save(organization);
Все статусы организации уже добавлены в базу данных (ACTIVE, PENDING, BLOCKED
). Когда сущность организации обновляется, мне просто нужно сослаться на сущность organizationStatus, и я не хочу обновлять сущность organizationStatus новой записью. И текущая реализация делает это из-за того, что каскадное определение определяется как CascadeType.ALL
в отношении. Какой идеальный способ справиться с этим. Обращайтесь к OrganisationStatus
только при сохранении сущности Organization
. И не обновлять статус сущности