PersonNames is no longer an embeddedable entity.

deploy_packages_to_gitea
Jens Pelzetter 2023-01-28 17:27:39 +01:00
parent 6e1f390a34
commit 1b10e695b7
9 changed files with 123 additions and 21 deletions

View File

@ -1,12 +1,12 @@
{
"name": "@librecms/ccm-cms",
"version": "7.0.0-SNAPSHOT.2023-01-28T095804",
"version": "7.0.0-SNAPSHOT.2023-01-28T144335",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@librecms/ccm-cms",
"version": "7.0.0-SNAPSHOT.2023-01-28T095804",
"version": "7.0.0-SNAPSHOT.2023-01-28T144335",
"license": "LGPL-3.0-or-later",
"dependencies": {
"@tiptap/core": "^2.0.0-beta.127",

View File

@ -1,6 +1,6 @@
{
"name": "@librecms/ccm-cms",
"version": "7.0.0-SNAPSHOT.2023-01-28T095804",
"version": "7.0.0-SNAPSHOT.2023-01-28T144335",
"description": "JavaScript stuff for ccm-cms",
"main": "target/generated-resources/assets/@content-sections/cms-admin.js",
"types": "target/generated-resources/assets/@content-sections/cms-admin.d.ts",

View File

@ -106,12 +106,10 @@ public class ContactEntry implements Serializable {
// this.key = key;
// }
public ContactEntryKey getKey() {
return key;
}
public void setKey(final ContactEntryKey key) {
this.key = key;
}
@ -135,7 +133,6 @@ public class ContactEntry implements Serializable {
@Override
public boolean equals(final Object obj) {
if (this == obj) {
return true;
}

View File

@ -20,6 +20,8 @@ package org.librecms.assets;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.envers.Audited;
import org.librecms.ui.contentsections.assets.MvcAssetEditKit;
import org.librecms.ui.contentsections.assets.PersonCreateStep;
@ -34,10 +36,12 @@ import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import static org.librecms.CmsConstants.*;
@ -77,14 +81,17 @@ public class Person extends ContactableEntity {
private static final long serialVersionUID = 1L;
@ElementCollection
@JoinTable(
joinColumns = {
// @ElementCollection(fetch = FetchType.EAGER)
// @JoinTable(
// joinColumns = {
// @JoinColumn(name = "PERSON_ID")
// },
// name = "PERSON_NAMES",
// schema = DB_SCHEMA
// )
@OneToMany
@JoinColumn(name = "PERSON_ID")
},
name = "PERSON_NAMES",
schema = DB_SCHEMA
)
@Cascade(CascadeType.ALL)
private List<PersonName> personNames;
/**

View File

@ -18,21 +18,36 @@
*/
package org.librecms.assets;
import org.hibernate.envers.Audited;
import java.io.Serializable;
import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import static org.librecms.CmsConstants.DB_SCHEMA;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@Embeddable
@Entity
@Audited
@Table(name = "PERSON_NAMES", schema = DB_SCHEMA)
public class PersonName implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name ="PERSON_NAME_ID")
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long personNameId;
/**
* The surname/familyname of the person
*/
@ -59,6 +74,14 @@ public class PersonName implements Serializable {
@Column(name = "SUFFIX")
private String suffix;
public long getPersonNameId() {
return personNameId;
}
protected void setPersonNameId(final long personNameId) {
this.personNameId = personNameId;
}
public String getSurname() {
return surname;
}
@ -94,6 +117,7 @@ public class PersonName implements Serializable {
@Override
public int hashCode() {
int hash = 5;
hash = 79 * hash + (int) (personNameId ^ (personNameId >>> 32));
hash = 79 * hash + Objects.hashCode(surname);
hash = 79 * hash + Objects.hashCode(givenName);
hash = 79 * hash + Objects.hashCode(prefix);
@ -103,7 +127,6 @@ public class PersonName implements Serializable {
@Override
public boolean equals(final Object obj) {
if (this == obj) {
return true;
}
@ -117,6 +140,9 @@ public class PersonName implements Serializable {
if (!other.canEqual(this)) {
return false;
}
if (personNameId != other.getPersonNameId()) {
return false;
}
if (!Objects.equals(surname, other.getSurname())) {
return false;
}
@ -143,12 +169,14 @@ public class PersonName implements Serializable {
return String.format(
"%s{ "
+ "personNameId = %d, "
+ "surname = \"%s\", "
+ "givenName = \"%s\", "
+ "prefix = \"%s\", "
+ "suffix = \"%s\"%s"
+ " }",
super.toString(),
personNameId,
surname,
givenName,
prefix,

View File

@ -0,0 +1,31 @@
alter table ccm_cms.person_names add column person_name_id int8;
update ccm_cms.person_names set person_name_id = nextval('hibernate_sequence');
alter table ccm_cms.person_names alter COLUMN person_name_id set not null;
alter table ccm_cms.person_names add primary key (person_name_id);
alter table ccm_cms.person_names_aud add column person_name_id int8;
update ccm_cms.person_names_aud set person_name_id = (select person_name_id from ccm_cms.person_names where ccm_cms.person_names.person_id = ccm_cms.person_names_aud.person_id);
alter table ccm_cms.person_names_aud drop constraint person_names_aud_pkey;
alter table ccm_cms.person_names_aud add primary key (person_name_id, rev, revtype);
create table CCM_CMS.Person_PersonName_AUD (
REV int4 not null,
PERSON_ID int8 not null,
PERSON_NAME_ID int8 not null,
REVTYPE int2,
REVEND int4,
primary key (REV, REVTYPE, PERSON_ID, PERSON_NAME_ID)
);
insert into ccm_cms.person_personname_aud (rev, person_id, person_name_id, revtype, revend) (select rev, person_id, person_name_id, revtype, revend from ccm_cms.person_names_aud);
alter table ccm_cms.person_names_aud drop column person_id;
alter table CCM_CMS.Person_PersonName_AUD
add constraint FKljtnu2oi4hkqwrmw8n0jhegp7
foreign key (REV)
references CCM_CORE.CCM_REVISIONS;
alter table CCM_CMS.Person_PersonName_AUD
add constraint FKnc3guy1nhw5pa0b62hdmqwd6k
foreign key (REVEND)
references CCM_CORE.CCM_REVISIONS;

View File

@ -0,0 +1,31 @@
alter table ccm_cms.person_names add column person_name_id int8;
update ccm_cms.person_names set person_name_id = nextval('hibernate_sequence');
alter table ccm_cms.person_names alter COLUMN person_name_id set not null;
alter table ccm_cms.person_names add primary key (person_name_id);
alter table ccm_cms.person_names_aud add column person_name_id int8;
update ccm_cms.person_names_aud set person_name_id = (select person_name_id from ccm_cms.person_names where ccm_cms.person_names.person_id = ccm_cms.person_names_aud.person_id);
alter table ccm_cms.person_names_aud drop constraint person_names_aud_pkey;
alter table ccm_cms.person_names_aud add primary key (person_name_id, rev, revtype);
create table CCM_CMS.Person_PersonName_AUD (
REV int4 not null,
PERSON_ID int8 not null,
PERSON_NAME_ID int8 not null,
REVTYPE int2,
REVEND int4,
primary key (REV, REVTYPE, PERSON_ID, PERSON_NAME_ID)
);
insert into ccm_cms.person_personname_aud (rev, person_id, person_name_id, revtype, revend) (select rev, person_id, person_name_id, revtype, revend from ccm_cms.person_names_aud);
alter table ccm_cms.person_names_aud drop column person_id;
alter table CCM_CMS.Person_PersonName_AUD
add constraint FKljtnu2oi4hkqwrmw8n0jhegp7
foreign key (REV)
references CCM_CORE.CCM_REVISIONS;
alter table CCM_CMS.Person_PersonName_AUD
add constraint FKnc3guy1nhw5pa0b62hdmqwd6k
foreign key (REVEND)
references CCM_CORE.CCM_REVISIONS;

View File

@ -18,12 +18,22 @@
*/
package org.libreccm.configuration;
import javax.persistence.*;
import java.io.Serializable;
import java.util.*;
import static org.libreccm.core.CoreConstants.DB_SCHEMA;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
/**
* A setting class for storing a set of strings. This can be used to generate
* enums which can be configured by the administrator.

View File

@ -149,8 +149,6 @@ public abstract class AbstractEntityImExporter<T extends Exportable> {
*
* @param data The entity data to import
*
* @return The imported entity.
*
* @throws ImportExpection If the import fails.
*
* @see #findExistingEntity(java.lang.String)