Add illustration id to publication entity.

This commit is contained in:
Florian THIERRY
2024-03-14 13:56:34 +01:00
parent 2dc386e896
commit 5d267111a9
15 changed files with 57 additions and 54 deletions

View File

@@ -24,13 +24,13 @@ public class AuthorEntity {
private UUID id;
@Column(nullable = false)
private String name;
// private String pictureId;
// private String illustrationId;
public AuthorEntity(Author author) {
this(
author.id(),
author.name()
// author.pictureId()
// author.illustrationId()
);
}

View File

@@ -5,7 +5,6 @@ import java.util.UUID;
import org.codiki.domain.publication.model.Publication;
import org.codiki.infrastructure.category.model.CategoryEntity;
import org.codiki.infrastructure.picture.model.PictureEntity;
import static jakarta.persistence.FetchType.LAZY;
import jakarta.persistence.Column;
@@ -38,9 +37,8 @@ public class PublicationEntity {
private String description;
@Column(nullable = false)
private ZonedDateTime creationDate;
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "picture_id")
private PictureEntity picture;
@Column(nullable = false)
private UUID illustrationId;
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "author_id")
private AuthorEntity author;
@@ -56,7 +54,7 @@ public class PublicationEntity {
publication.text(),
publication.description(),
publication.creationDate(),
new PictureEntity(publication.picture()),
publication.illustrationId(),
new AuthorEntity(publication.author()),
new CategoryEntity(publication.category())
);
@@ -69,7 +67,8 @@ public class PublicationEntity {
title,
text,
description,
creationDate, picture.toDomain(),
creationDate,
illustrationId,
author.toDomain(),
category.toDomain()
);

View File

@@ -12,7 +12,6 @@ public interface PublicationRepository extends JpaRepository<PublicationEntity,
@Query("""
SELECT p
FROM PublicationEntity p
JOIN FETCH p.picture pi
JOIN FETCH p.author a
JOIN FETCH p.category c
WHERE p.id = :publicationId

View File

@@ -46,15 +46,15 @@ CREATE TABLE IF NOT EXISTS publication (
text VARCHAR NOT NULL,
description VARCHAR NOT NULL,
creation_date TIMESTAMP NOT NULL,
picture_id UUID NOT NULL,
illustration_id UUID NOT NULL,
author_id UUID NOT NULL,
category_id UUID NOT NULL,
CONSTRAINT publication_pk PRIMARY KEY (id),
CONSTRAINT publication_picture_id_fk FOREIGN KEY (picture_id) REFERENCES picture (id),
CONSTRAINT publication_picture_id_fk FOREIGN KEY (illustration_id) REFERENCES picture (id),
CONSTRAINT publication_author_id_fk FOREIGN KEY (author_id) REFERENCES "user" (id),
CONSTRAINT publication_category_id_fk FOREIGN KEY (category_id) REFERENCES category (id)
);
CREATE INDEX publication_picture_id_idx ON publication (picture_id);
CREATE INDEX publication_picture_id_idx ON publication (illustration_id);
CREATE INDEX publication_author_id_idx ON publication (author_id);
CREATE INDEX publication_category_id_idx ON publication (category_id);