blob: 3ae3fa0f9297764c3f89a289b963885d284be103 [file] [log] [blame]
Matthias Andreas Benkard4982faa2021-02-24 06:45:39 +01001package eu.mulk.demos.blog;
2
3import io.quarkus.hibernate.orm.panache.PanacheEntity;
4import java.time.Instant;
5import java.util.List;
6import javax.persistence.Column;
7import javax.persistence.Entity;
8import javax.persistence.FetchType;
9import javax.persistence.ManyToMany;
10import javax.persistence.ManyToOne;
11import javax.persistence.OneToMany;
12
13@Entity
14public class Post extends PanacheEntity {
15
16 public String title;
17
18 public Instant publicationDate;
19
20 @Column(columnDefinition = "TEXT")
21 public String body;
22
23 @ManyToOne(fetch = FetchType.LAZY)
24 public Author author;
25
26 @ManyToMany(fetch = FetchType.LAZY)
27 public List<Category> categories;
28
Matthias Andreas Benkard0c009e82021-02-26 07:23:27 +010029 @OneToMany(fetch = FetchType.LAZY, mappedBy = "post")
Matthias Andreas Benkard4982faa2021-02-24 06:45:39 +010030 public List<Comment> comments;
Matthias Andreas Benkard0c009e82021-02-26 07:23:27 +010031
32 public static Post create(Author author, String title) {
33 var p = new Post();
34 p.title = title;
35 p.publicationDate = Instant.now();
36 p.body = "";
37 p.author = author;
38 return p;
39 }
Matthias Andreas Benkard4982faa2021-02-24 06:45:39 +010040}