Guest User

Untitled

a guest
Sep 21st, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.17 KB | None | 0 0
  1. @Entity
  2. @Table(name = "artwork")
  3. public class ArtWork implements io.malevich.web.entity.Entity {
  4.  
  5. @Id
  6. @GeneratedValue(strategy = GenerationType.IDENTITY)
  7. private Long id;
  8. @Id
  9. @Column(name = "language", columnDefinition = "CHAR(2)")
  10. private String language;
  11. @Column(name = "art_name", nullable = false)
  12. private String artName;
  13. @Column(name = "creation_date", nullable = false)
  14. private Date creationDate;
  15. @Column(name = "edition_flag", nullable = false, columnDefinition = "tinyint(1)")
  16. private boolean editionFlag;
  17. @Column(name = "replica_flag", nullable = false, columnDefinition = "tinyint(1)")
  18. private boolean replicaFlag;
  19. @Column(name = "number_of_editions")
  20. private Long numberOfEditions;
  21. @Column(name = "original_id")
  22. private Long originalId;
  23.  
  24. @ManyToOne
  25. @JoinColumns({
  26. @JoinColumn(
  27. name = "category_id",
  28. referencedColumnName = "id", insertable = false, updatable = false),
  29. @JoinColumn(
  30. name = "language",
  31. referencedColumnName = "language", insertable = false, updatable = false)
  32. })
  33. private Category category;
  34.  
  35. @ManyToOne
  36. @JoinColumns({
  37. @JoinColumn(
  38. name = "gallery_id",
  39. referencedColumnName = "id", insertable = false, updatable = false),
  40. @JoinColumn(
  41. name = "language",
  42. referencedColumnName = "language", insertable = false, updatable = false)
  43. })
  44. private Gallery gallery;
  45.  
  46. @ManyToOne
  47. private Specialization specialization;
  48.  
  49. @ManyToOne
  50. @JoinColumns({
  51. @JoinColumn(
  52. name = "author_id",
  53. referencedColumnName = "id", insertable = false, updatable = false),
  54. @JoinColumn(
  55. name = "language",
  56. referencedColumnName = "language", insertable = false, updatable = false)
  57. })
  58. private Author author;
  59.  
  60. @Column
  61. private String description;
  62. @Column
  63. private Double price;
  64.  
  65. //getter setter
  66. }
  67.  
  68. @javax.persistence.Entity
  69. @Table(name = "user")
  70. public class User implements Entity, UserDetails {
  71. @Id
  72. @GeneratedValue(strategy = GenerationType.IDENTITY)
  73. private Long id;
  74.  
  75. @Column(unique = true, length = 255, nullable = false)
  76. private String name;
  77.  
  78. @Column(length = 255, nullable = false)
  79. private String password;
  80.  
  81. @ElementCollection(fetch = FetchType.EAGER)
  82. private Set<Role> roles = new HashSet<>();
  83.  
  84. @Column(name = "user_type_id")
  85. private Long userTypeId;
  86.  
  87. @ManyToOne
  88. @JoinColumn(name = "person_id", referencedColumnName = "id")
  89. private Person person;
  90.  
  91. @ManyToOne
  92. @JoinColumn(name = "organization_id", referencedColumnName = "id")
  93. private Organization organization;
  94.  
  95. @ManyToOne
  96. @JoinColumn(name = "file_id", referencedColumnName = "id")
  97. private File file;
  98.  
  99.  
  100. @Column(name = "activity_flag")
  101. private boolean activityFlag;
  102. //gettter and setter
  103. }
  104.  
  105. @javax.persistence.Entity
  106. @Table(name = "account_states")
  107. public class AccountStates implements Entity {
  108.  
  109. @Id
  110. @GeneratedValue(strategy = GenerationType.IDENTITY)
  111. private Long id;
  112.  
  113. @Column(insertable = false, updatable = false)
  114. private String language;
  115.  
  116. @ManyToOne
  117. @JoinColumns({ @JoinColumn(name = "artwork_id", referencedColumnName = "id"),
  118. @JoinColumn(name = "language", referencedColumnName = "language") })
  119. private ArtWork artwork;
  120.  
  121. @ManyToOne
  122. @JoinColumn(name = "art_owner_id", referencedColumnName = "id")
  123. private User artOwner;
  124.  
  125. @Column(name = "quantity")
  126. private Long quantity;
  127.  
  128. @Temporal(TemporalType.DATE)
  129. @Column(name = "buy_date")
  130. private Date buyDate;
  131. }
  132.  
  133. public JpaAccountStatesDao() {
  134. super(AccountStates.class);
  135. }
  136.  
  137. @Override
  138. public AccountStates find(Long artOwnerId, Long artworkId, String language) {
  139. final CriteriaBuilder builder = this.getEntityManager().getCriteriaBuilder();
  140. final CriteriaQuery<AccountStates> criteriaQuery = builder.createQuery(AccountStates.class);
  141.  
  142. Root<AccountStates> root = criteriaQuery.from(AccountStates.class);
  143. Predicate p1 = builder.and(builder.equal(root.get("artwork"), artworkId),
  144. builder.equal(root.get("artwork"), language), builder.equal(root.get("artOwner"), artOwnerId));
  145.  
  146. criteriaQuery.where(p1);
  147.  
  148. TypedQuery<AccountStates> typedQuery = this.getEntityManager().createQuery(criteriaQuery);
  149.  
  150. return typedQuery.getSingleResult();
  151. }
  152. }
Add Comment
Please, Sign In to add comment