Guest User

Untitled

a guest
Jan 5th, 2019
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.62 KB | None | 0 0
  1. spring.thymeleaf.cache = false
  2. spring.thymeleaf.prefix = classpath:/templates
  3. server.port = 8090
  4.  
  5. spring.datasource.driver-class-name = com.mysql.jdbc.Driver
  6. spring.datasource.url = jdbc:mysql://localhost/test?characterEncoding=utf8&serverTimezone=UTC
  7. spring.datasource.username = root
  8. spring.datasource.password = password
  9.  
  10. ######################################################
  11. ##### Configure Hibernate DDL mode: create / update
  12. spring.jpa.properties.hibernate.hbm2ddl.auto = update
  13. spring.jpa.properties.hibernate.show_sql = true
  14.  
  15. ######################################################
  16. ##### Spring Security Queries for AuthenticationManagerBuilder
  17. spring.queries.users-query = SELECT username, password, active FROM user_table WHERE username=?
  18. spring.queries.roles-query = SELECT ut.username, rt.role FROM user_table ut inner join user_role ur on(ut.user_id=ur.user_id) inner join role_table rt on(ur.role_id=rt.role_id) WHERE ut.username=?
  19.  
  20. @Data
  21. @Entity
  22. @Table(name="USER_TABLE")
  23. public class User {
  24.  
  25. @Id
  26. @GeneratedValue(strategy=GenerationType.AUTO)
  27. @Column(name="USER_ID", nullable = false, unique = true)
  28. private Long id;
  29.  
  30. @Column(name="EMAIL", unique=true, nullable=false)
  31. @Email
  32. @NotEmpty(message="**Type your email")
  33. private String email;
  34.  
  35. @Column(name="PASSWORD", nullable=false)
  36. @Length(min=5, message="**minimum 5 characters")
  37. @NotEmpty(message="**type password")
  38. @JsonIgnore
  39. private String password;
  40.  
  41. @Column(name="USERNAME", unique=true, nullable=false)
  42. @Length(min=3, message="**minimum 3 characters")
  43. @NotEmpty(message="**type your username")
  44. private String username;
  45.  
  46. @Column(name="NAME")
  47. @NotEmpty(message="**type your name")
  48. private String name;
  49.  
  50. @Column(name="LAST_NAME")
  51. @NotEmpty(message="**type your last name")
  52. private String lastName;
  53.  
  54. @Column(name="ACTIVE", nullable=false)
  55. private int active;
  56.  
  57. @ManyToMany(cascade=CascadeType.ALL)
  58. @JoinTable(name="USER_ROLE", joinColumns=@JoinColumn(name="USER_ID"), inverseJoinColumns=@JoinColumn(name="ROLE_ID"))
  59. private Collection<Role> roles;
  60.  
  61. @OneToMany(mappedBy="user")
  62. private Collection<Post> posts;
  63. }
  64.  
  65. @Data
  66. @Entity
  67. @Table(name="POST")
  68. public class Post {
  69.  
  70. @Id
  71. @GeneratedValue(strategy=GenerationType.AUTO)
  72. @Column(name="POST_ID")
  73. private Long id;
  74.  
  75. @Column(name="TITLE", nullable=false)
  76. @Length(min=5, message="**minimum 5 characters")
  77. @NotEmpty(message="**type your title")
  78. private String title;
  79.  
  80. @Column(name="BODY", columnDefinition="TEXT")
  81. private String body;
  82.  
  83. @Temporal(TemporalType.TIMESTAMP)
  84. @Column(name="CREATION_DATE", nullable=false, updatable=false)
  85. @CreationTimestamp
  86. private Date createDate;
  87.  
  88. @ManyToOne
  89. @JoinColumn(name="USER_ID", referencedColumnName="USER_ID", nullable=false)
  90. @NotNull
  91. private User user;
  92.  
  93. @OneToMany(mappedBy="post", cascade=CascadeType.REMOVE)
  94. private Collection<Comment> comments;
  95. }
  96.  
  97. @Data
  98. @Entity
  99. @Table(name="ROLE_TABLE")
  100. public class Role {
  101.  
  102. @Id
  103. @GeneratedValue(strategy=GenerationType.AUTO)
  104. @Column(name="role_id")
  105. private Long id;
  106.  
  107. @Column(name="role", unique=true)
  108. private String role;
  109.  
  110. @ManyToMany(cascade=CascadeType.ALL, mappedBy="roles")
  111. private Collection<User> users;
  112. }
  113.  
  114. @Controller
  115. public class PostController {
  116.  
  117. @Autowired
  118. private PostService postService;
  119.  
  120. @Autowired
  121. private UserService userService;
  122.  
  123. @RequestMapping(value="/newPost", method=RequestMethod.GET)
  124. public String newPost(Principal principal, Model model) {
  125.  
  126. User user = userService.findByUsername(principal.getName());
  127.  
  128. if(user != null) {
  129. Post post = new Post();
  130. post.setUser(user); // throws Exceptions.
  131.  
  132. model.addAttribute("post", post);
  133. return "/postForm";
  134. } else {
  135. return "/error";
  136. }
  137.  
  138. }
  139.  
  140. @RequestMapping(value="/newPost", method=RequestMethod.POST)
  141. public String createNewPost(@Valid Post post, BindingResult bindingResult) {
  142.  
  143. if(bindingResult.hasErrors()) {
  144. return "/postForm";
  145. } else {
  146. postService.save(post);
  147. return "redirect:/blog/" + post.getUser().getUsername();
  148. }
  149. }
  150.  
  151. at java.base/java.util.AbstractCollection.toString(AbstractCollection.java:473) ~[na:na]
  152. at org.hibernate.collection.internal.PersistentBag.toString(PersistentBag.java:510) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
  153. at java.base/java.lang.String.valueOf(String.java:2951) ~[na:na]
  154. at java.base/java.lang.StringBuilder.append(StringBuilder.java:168) ~[na:na]
  155. at com.aaa.spring.blog.model.Role.toString(Role.java:16) ~[classes/:na]
  156. at java.base/java.lang.String.valueOf(String.java:2951) ~[na:na]
  157. at java.base/java.lang.StringBuilder.append(StringBuilder.java:168) ~[na:na]
  158. at java.base/java.util.AbstractCollection.toString(AbstractCollection.java:473) ~[na:na]
  159. at org.hibernate.collection.internal.PersistentBag.toString(PersistentBag.java:510) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
  160. at java.base/java.lang.String.valueOf(String.java:2951) ~[na:na]
  161. at java.base/java.lang.StringBuilder.append(StringBuilder.java:168) ~[na:na]
  162. at com.aaa.spring.blog.model.User.toString(User.java:25) ~[classes/:na]
  163. at java.base/java.lang.String.valueOf(String.java:2951) ~[na:na]
  164. at java.base/java.lang.StringBuilder.append(StringBuilder.java:168) ~[na:na]
  165. at java.base/java.util.AbstractCollection.toString(AbstractCollection.java:473) ~[na:na]
  166. at org.hibernate.collection.internal.PersistentBag.toString(PersistentBag.java:510) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
  167. at java.base/java.lang.String.valueOf(String.java:2951) ~[na:na]
Add Comment
Please, Sign In to add comment