Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 1 | package eu.mulk.mulkcms2.benki.generic; |
Matthias Andreas Benkard | 734879e | 2020-01-24 10:47:37 +0100 | [diff] [blame] | 2 | |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 3 | import eu.mulk.mulkcms2.benki.users.User; |
Matthias Andreas Benkard | 35cb159 | 2020-01-24 11:05:20 +0100 | [diff] [blame] | 4 | import io.quarkus.hibernate.orm.panache.PanacheEntityBase; |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 5 | import java.time.OffsetDateTime; |
Matthias Andreas Benkard | f9c7427 | 2020-01-24 11:51:35 +0100 | [diff] [blame^] | 6 | import java.util.Set; |
Matthias Andreas Benkard | 734879e | 2020-01-24 10:47:37 +0100 | [diff] [blame] | 7 | import javax.persistence.Column; |
| 8 | import javax.persistence.Entity; |
Matthias Andreas Benkard | f9c7427 | 2020-01-24 11:51:35 +0100 | [diff] [blame^] | 9 | import javax.persistence.FetchType; |
Matthias Andreas Benkard | 734879e | 2020-01-24 10:47:37 +0100 | [diff] [blame] | 10 | import javax.persistence.Id; |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 11 | import javax.persistence.Inheritance; |
| 12 | import javax.persistence.InheritanceType; |
Matthias Andreas Benkard | 734879e | 2020-01-24 10:47:37 +0100 | [diff] [blame] | 13 | import javax.persistence.JoinColumn; |
Matthias Andreas Benkard | f9c7427 | 2020-01-24 11:51:35 +0100 | [diff] [blame^] | 14 | import javax.persistence.JoinTable; |
| 15 | import javax.persistence.ManyToMany; |
Matthias Andreas Benkard | 734879e | 2020-01-24 10:47:37 +0100 | [diff] [blame] | 16 | import javax.persistence.ManyToOne; |
| 17 | import javax.persistence.Table; |
| 18 | |
| 19 | @Entity |
| 20 | @Table(name = "posts", schema = "public", catalog = "benki") |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 21 | @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) |
| 22 | public abstract class Post extends PanacheEntityBase { |
Matthias Andreas Benkard | 734879e | 2020-01-24 10:47:37 +0100 | [diff] [blame] | 23 | |
| 24 | @Id |
| 25 | @Column(name = "id", nullable = false) |
Matthias Andreas Benkard | 35cb159 | 2020-01-24 11:05:20 +0100 | [diff] [blame] | 26 | public int id; |
Matthias Andreas Benkard | 734879e | 2020-01-24 10:47:37 +0100 | [diff] [blame] | 27 | |
Matthias Andreas Benkard | 734879e | 2020-01-24 10:47:37 +0100 | [diff] [blame] | 28 | @Column(name = "date", nullable = true) |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 29 | public OffsetDateTime date; |
Matthias Andreas Benkard | 734879e | 2020-01-24 10:47:37 +0100 | [diff] [blame] | 30 | |
| 31 | @ManyToOne |
| 32 | @JoinColumn(name = "owner", referencedColumnName = "id") |
Matthias Andreas Benkard | 35cb159 | 2020-01-24 11:05:20 +0100 | [diff] [blame] | 33 | public User owner; |
Matthias Andreas Benkard | f9c7427 | 2020-01-24 11:51:35 +0100 | [diff] [blame^] | 34 | |
| 35 | @ManyToMany(fetch = FetchType.LAZY) |
| 36 | @JoinTable( |
| 37 | name = "user_visible_posts", |
| 38 | joinColumns = @JoinColumn(name = "message"), |
| 39 | inverseJoinColumns = @JoinColumn(name = "user")) |
| 40 | public Set<User> visibleTo; |
Matthias Andreas Benkard | 734879e | 2020-01-24 10:47:37 +0100 | [diff] [blame] | 41 | } |