issue: Issue sharing feature - Add model
@609e2111414e840159923f24eecfe6244b28bef6
--- app/models/Issue.java
+++ app/models/Issue.java
... | ... | @@ -75,6 +75,9 @@ |
75 | 75 |
@OneToMany(cascade = CascadeType.ALL, mappedBy="issue") |
76 | 76 |
public List<IssueEvent> events; |
77 | 77 |
|
78 |
+ @OneToMany(cascade = CascadeType.ALL, mappedBy = "issue") |
|
79 |
+ public Set<IssueSharer> sharers = new LinkedHashSet<>(); |
|
80 |
+ |
|
78 | 81 |
@ManyToMany(cascade = CascadeType.ALL) |
79 | 82 |
@JoinTable( |
80 | 83 |
name = "issue_voter", |
... | ... | @@ -675,4 +678,17 @@ |
675 | 678 |
.eq("state", State.OPEN) |
676 | 679 |
.findRowCount(); |
677 | 680 |
} |
681 |
+ |
|
682 |
+ public IssueSharer findSharerByUserId(Long id){ |
|
683 |
+ for (IssueSharer sharer : sharers) { |
|
684 |
+ if (sharer.user.id.equals(id)) { |
|
685 |
+ return sharer; |
|
686 |
+ } |
|
687 |
+ } |
|
688 |
+ return null; |
|
689 |
+ } |
|
690 |
+ |
|
691 |
+ public List<IssueSharer> getSortedSharer() { |
|
692 |
+ return new ArrayList<>(sharers); |
|
693 |
+ } |
|
678 | 694 |
} |
+++ conf/evolutions/default/19.sql
... | ... | @@ -0,0 +1,19 @@ |
1 | +# --- !Ups | |
2 | +CREATE TABLE issue_sharer ( | |
3 | + id BIGINT AUTO_INCREMENT NOT NULL, | |
4 | + created DATE, | |
5 | + login_id VARCHAR(255), | |
6 | + user_id BIGINT, | |
7 | + issue_id BIGINT, | |
8 | + CONSTRAINT pk_issue_sharer PRIMARY KEY (id), | |
9 | + CONSTRAINT fk_issue_sharer_user FOREIGN KEY (user_id) REFERENCES n4user (id) on DELETE CASCADE, | |
10 | + CONSTRAINT fk_issue_sharer_issue FOREIGN KEY (issue_id) REFERENCES issue (id) on DELETE CASCADE | |
11 | +) | |
12 | +row_format=compressed, key_block_size=8; | |
13 | + | |
14 | +CREATE index ix_issue_sharer_login_id ON issue_sharer (login_id); | |
15 | +CREATE index ix_issue_sharer_user_id ON issue_sharer (user_id); | |
16 | +CREATE index ix_issue_sharer_issue_id ON issue_sharer (issue_id); | |
17 | + | |
18 | +# --- !Downs | |
19 | +DROP TABLE issue_sharer; |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?