Advertisement
Guest User

Spring

a guest
Oct 15th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.54 KB | None | 0 0
  1. @Entity
  2. @Table(name = "projects")
  3. @EntityListeners(AuditingEntityListener.class)
  4. @JsonIgnoreProperties(value = {"createdAt", "updatedAt"}, allowGetters = true)
  5. public class Project {
  6.  
  7.     @Id
  8.     @GeneratedValue
  9.     private Long id;
  10.  
  11.     @NotBlank
  12.     private String name;
  13.  
  14.     @ManyToMany(fetch = FetchType.LAZY,
  15.             cascade = {CascadeType.PERSIST, CascadeType.MERGE})
  16.     @JoinTable(name = "projects",
  17.             joinColumns = {@JoinColumn(name = "project_id")},
  18.             inverseJoinColumns = {@JoinColumn(name = "user_id")})
  19.     private Set<User> users;
  20.  
  21.     @Column(nullable = false, updatable = false)
  22.     @Temporal(TemporalType.TIMESTAMP)
  23.     @CreatedDate
  24.     private Date createdAt;
  25.  
  26.     @Column(nullable = false)
  27.     @Temporal(TemporalType.TIMESTAMP)
  28.     @LastModifiedDate
  29.     private Date updatedAt;
  30. }
  31.  
  32. @Entity
  33. @Table(name = "users")
  34. @EntityListeners(AuditingEntityListener.class)
  35. @JsonIgnoreProperties(value = {"createdAt", "updatedAt"}, allowGetters = true)
  36. public class User {
  37.  
  38.     @Id
  39.     @GeneratedValue
  40.     private Long id;
  41.  
  42.     @NotBlank
  43.     private String name;
  44.  
  45.     @NotBlank
  46.     private String email;
  47.  
  48.     @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE}, mappedBy = "users")
  49.     private Set<Project> projects;
  50.  
  51.     @ManyToMany(fetch = FetchType.LAZY,
  52.             cascade = {CascadeType.PERSIST, CascadeType.MERGE})
  53.     @JoinTable(name = "users",
  54.             joinColumns = {@JoinColumn(name = "user_id")},
  55.             inverseJoinColumns = {@JoinColumn(name = "device_id")})
  56.     private Set<Device> devices;
  57.  
  58.     @Column(nullable = false, updatable = false)
  59.     @Temporal(TemporalType.TIMESTAMP)
  60.     @CreatedDate
  61.     private Date createdAt;
  62.  
  63.     @Column(nullable = false)
  64.     @Temporal(TemporalType.TIMESTAMP)
  65.     @LastModifiedDate
  66.     private Date updatedAt;
  67. }
  68.  
  69. @Entity
  70. @Table(name = "devices")
  71. @EntityListeners(AuditingEntityListener.class)
  72. @JsonIgnoreProperties(value = {"createdAt", "updatedAt"}, allowGetters = true)
  73. public class Device {
  74.  
  75.     @Id
  76.     @GeneratedValue
  77.     private Long id;
  78.  
  79.     @Column(unique = true)
  80.     private String uuid;
  81.  
  82.     @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE}, mappedBy = "devices")
  83.     private Set<User> users;
  84.  
  85.     @Column(nullable = false, updatable = false)
  86.     @Temporal(TemporalType.TIMESTAMP)
  87.     @CreatedDate
  88.     private Date createdAt;
  89.  
  90.     @Column(nullable = false)
  91.     @Temporal(TemporalType.TIMESTAMP)
  92.     @LastModifiedDate
  93.     private Date updatedAt;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement