1
0

add person business object at db level

This commit is contained in:
Michael Hoennig
2022-09-07 20:24:35 +02:00
parent 9720b37d85
commit 37e7b5179d
17 changed files with 707 additions and 36 deletions

View File

@ -1,7 +1,9 @@
package net.hostsharing.hsadminng.hs.admin.person;
import com.vladmihalcea.hibernate.type.array.ListArrayType;
import com.vladmihalcea.hibernate.type.basic.PostgreSQLEnumType;
import lombok.*;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import javax.persistence.*;
@ -10,8 +12,8 @@ import java.util.UUID;
@Entity
@Table(name = "hs_admin_person_rv")
@TypeDef(
name = "list-array",
typeClass = ListArrayType.class
name = "pgsql_enum",
typeClass = PostgreSQLEnumType.class
)
@Getter
@Setter
@ -22,9 +24,12 @@ public class HsAdminPersonEntity {
private @Id UUID uuid;
@Column(name = "persontype")
@Enumerated(EnumType.STRING)
private PersonType type;
@Type( type = "pgsql_enum" )
private HsAdminPersonType personType;
@Column(name = "tradename")
private String tradeName;
@Column(name = "givenname")
@ -33,10 +38,7 @@ public class HsAdminPersonEntity {
@Column(name = "familyname")
private String familyName;
public enum PersonType {
NATURAL,
LEGAL,
SOLE_REPRESENTATION,
JOINT_REPRESENTATION
public String getDisplayName() {
return !StringUtils.isEmpty(tradeName) ? tradeName : (familyName + ", " + givenName);
}
}

View File

@ -9,7 +9,7 @@ import java.util.UUID;
public interface HsAdminPersonRepository extends Repository<HsAdminPersonEntity, UUID> {
Optional<HsAdminPersonEntity> findByUuid(UUID id);
Optional<HsAdminPersonEntity> findByUuid(UUID personUuid);
@Query("""
SELECT p FROM HsAdminPersonEntity p
@ -22,5 +22,7 @@ public interface HsAdminPersonRepository extends Repository<HsAdminPersonEntity,
HsAdminPersonEntity save(final HsAdminPersonEntity entity);
void deleteByUuid(final UUID personUuid);
long count();
}

View File

@ -0,0 +1,8 @@
package net.hostsharing.hsadminng.hs.admin.person;
public enum HsAdminPersonType {
NATURAL,
LEGAL,
SOLE_REPRESENTATION,
JOINT_REPRESENTATION
}