Guest User

Untitled

a guest
Oct 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. @Entity
  2. @DiscriminatorColumn(name = "type")
  3. @Inheritance(strategy = InheritanceType.SINGLE_TABLE)
  4. public abstract class StorageElement {
  5.  
  6. @Enumerated(value = EnumType.STRING)
  7. @Column(updatable = false, insertable = false)
  8. private SomeType type;
  9.  
  10. @Id
  11. @GeneratedValue
  12. private Long id;
  13.  
  14. @Column
  15. private String name;
  16.  
  17. @OneToOne
  18. @JoinColumn(name = "user_id")
  19. @JsonIgnore
  20. private AccountEntity owner;
  21.  
  22. @Column
  23. private Long size;
  24.  
  25. @ManyToOne(targetEntity = Organization.class)
  26. @JoinColumn(name = "organization_id")
  27. @JsonIgnore
  28. private Organization organization;
  29.  
  30. @OneToMany(targetEntity = StorageElement.class)
  31. @JsonIgnore
  32. private List<StorageElement> children;
  33.  
  34. @Entity
  35. @DiscriminatorValue("CHANNEL")
  36. public class Channel extends StorageElement{
  37.  
  38. @ManyToMany(cascade = CascadeType.REMOVE)
  39. @JoinTable(
  40. name="channel_account",
  41. joinColumns=@JoinColumn(name="channel_id",
  42. referencedColumnName="id"),
  43. inverseJoinColumns=@JoinColumn(name="user_id",
  44. referencedColumnName="id"))
  45. List<AccountEntity> accountEntityList;
  46.  
  47. @ManyToMany(cascade = CascadeType.REMOVE)
  48. @JoinTable(
  49. name="storage_parent",
  50. joinColumns=@JoinColumn(name="parent_id",
  51. referencedColumnName="id"),
  52. inverseJoinColumns=@JoinColumn(name="storage_id",
  53. referencedColumnName="id"))
  54. List<StorageElement> storageElementList;
Add Comment
Please, Sign In to add comment