Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Entity
- @Table(name = "projects")
- @EntityListeners(AuditingEntityListener.class)
- @JsonIgnoreProperties(value = {"createdAt", "updatedAt"}, allowGetters = true)
- public class Project {
- @Id
- @GeneratedValue
- private Long id;
- @NotBlank
- private String name;
- @ManyToMany(fetch = FetchType.LAZY,
- cascade = {CascadeType.PERSIST, CascadeType.MERGE})
- @JoinTable(name = "projects",
- joinColumns = {@JoinColumn(name = "project_id")},
- inverseJoinColumns = {@JoinColumn(name = "user_id")})
- private Set<User> users;
- @Column(nullable = false, updatable = false)
- @Temporal(TemporalType.TIMESTAMP)
- @CreatedDate
- private Date createdAt;
- @Column(nullable = false)
- @Temporal(TemporalType.TIMESTAMP)
- @LastModifiedDate
- private Date updatedAt;
- }
- @Entity
- @Table(name = "users")
- @EntityListeners(AuditingEntityListener.class)
- @JsonIgnoreProperties(value = {"createdAt", "updatedAt"}, allowGetters = true)
- public class User {
- @Id
- @GeneratedValue
- private Long id;
- @NotBlank
- private String name;
- @NotBlank
- private String email;
- @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE}, mappedBy = "users")
- private Set<Project> projects;
- @ManyToMany(fetch = FetchType.LAZY,
- cascade = {CascadeType.PERSIST, CascadeType.MERGE})
- @JoinTable(name = "users",
- joinColumns = {@JoinColumn(name = "user_id")},
- inverseJoinColumns = {@JoinColumn(name = "device_id")})
- private Set<Device> devices;
- @Column(nullable = false, updatable = false)
- @Temporal(TemporalType.TIMESTAMP)
- @CreatedDate
- private Date createdAt;
- @Column(nullable = false)
- @Temporal(TemporalType.TIMESTAMP)
- @LastModifiedDate
- private Date updatedAt;
- }
- @Entity
- @Table(name = "devices")
- @EntityListeners(AuditingEntityListener.class)
- @JsonIgnoreProperties(value = {"createdAt", "updatedAt"}, allowGetters = true)
- public class Device {
- @Id
- @GeneratedValue
- private Long id;
- @Column(unique = true)
- private String uuid;
- @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE}, mappedBy = "devices")
- private Set<User> users;
- @Column(nullable = false, updatable = false)
- @Temporal(TemporalType.TIMESTAMP)
- @CreatedDate
- private Date createdAt;
- @Column(nullable = false)
- @Temporal(TemporalType.TIMESTAMP)
- @LastModifiedDate
- private Date updatedAt;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement