Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Entity
- @DiscriminatorColumn(name = "type")
- @Inheritance(strategy = InheritanceType.SINGLE_TABLE)
- public abstract class StorageElement {
- @Enumerated(value = EnumType.STRING)
- @Column(updatable = false, insertable = false)
- private SomeType type;
- @Id
- @GeneratedValue
- private Long id;
- @Column
- private String name;
- @OneToOne
- @JoinColumn(name = "user_id")
- @JsonIgnore
- private AccountEntity owner;
- @Column
- private Long size;
- @ManyToOne(targetEntity = Organization.class)
- @JoinColumn(name = "organization_id")
- @JsonIgnore
- private Organization organization;
- @OneToMany(targetEntity = StorageElement.class)
- @JsonIgnore
- private List<StorageElement> children;
- @Entity
- @DiscriminatorValue("CHANNEL")
- public class Channel extends StorageElement{
- @ManyToMany(cascade = CascadeType.REMOVE)
- @JoinTable(
- name="channel_account",
- joinColumns=@JoinColumn(name="channel_id",
- referencedColumnName="id"),
- inverseJoinColumns=@JoinColumn(name="user_id",
- referencedColumnName="id"))
- List<AccountEntity> accountEntityList;
- @ManyToMany(cascade = CascadeType.REMOVE)
- @JoinTable(
- name="storage_parent",
- joinColumns=@JoinColumn(name="parent_id",
- referencedColumnName="id"),
- inverseJoinColumns=@JoinColumn(name="storage_id",
- referencedColumnName="id"))
- List<StorageElement> storageElementList;
Add Comment
Please, Sign In to add comment