Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- spring.thymeleaf.cache = false
- spring.thymeleaf.prefix = classpath:/templates
- server.port = 8090
- spring.datasource.driver-class-name = com.mysql.jdbc.Driver
- spring.datasource.url = jdbc:mysql://localhost/test?characterEncoding=utf8&serverTimezone=UTC
- spring.datasource.username = root
- spring.datasource.password = password
- ######################################################
- ##### Configure Hibernate DDL mode: create / update
- spring.jpa.properties.hibernate.hbm2ddl.auto = update
- spring.jpa.properties.hibernate.show_sql = true
- ######################################################
- ##### Spring Security Queries for AuthenticationManagerBuilder
- spring.queries.users-query = SELECT username, password, active FROM user_table WHERE username=?
- 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=?
- @Data
- @Entity
- @Table(name="USER_TABLE")
- public class User {
- @Id
- @GeneratedValue(strategy=GenerationType.AUTO)
- @Column(name="USER_ID", nullable = false, unique = true)
- private Long id;
- @Column(name="EMAIL", unique=true, nullable=false)
- @Email
- @NotEmpty(message="**Type your email")
- private String email;
- @Column(name="PASSWORD", nullable=false)
- @Length(min=5, message="**minimum 5 characters")
- @NotEmpty(message="**type password")
- @JsonIgnore
- private String password;
- @Column(name="USERNAME", unique=true, nullable=false)
- @Length(min=3, message="**minimum 3 characters")
- @NotEmpty(message="**type your username")
- private String username;
- @Column(name="NAME")
- @NotEmpty(message="**type your name")
- private String name;
- @Column(name="LAST_NAME")
- @NotEmpty(message="**type your last name")
- private String lastName;
- @Column(name="ACTIVE", nullable=false)
- private int active;
- @ManyToMany(cascade=CascadeType.ALL)
- @JoinTable(name="USER_ROLE", joinColumns=@JoinColumn(name="USER_ID"), inverseJoinColumns=@JoinColumn(name="ROLE_ID"))
- private Collection<Role> roles;
- @OneToMany(mappedBy="user")
- private Collection<Post> posts;
- }
- @Data
- @Entity
- @Table(name="POST")
- public class Post {
- @Id
- @GeneratedValue(strategy=GenerationType.AUTO)
- @Column(name="POST_ID")
- private Long id;
- @Column(name="TITLE", nullable=false)
- @Length(min=5, message="**minimum 5 characters")
- @NotEmpty(message="**type your title")
- private String title;
- @Column(name="BODY", columnDefinition="TEXT")
- private String body;
- @Temporal(TemporalType.TIMESTAMP)
- @Column(name="CREATION_DATE", nullable=false, updatable=false)
- @CreationTimestamp
- private Date createDate;
- @ManyToOne
- @JoinColumn(name="USER_ID", referencedColumnName="USER_ID", nullable=false)
- @NotNull
- private User user;
- @OneToMany(mappedBy="post", cascade=CascadeType.REMOVE)
- private Collection<Comment> comments;
- }
- @Data
- @Entity
- @Table(name="ROLE_TABLE")
- public class Role {
- @Id
- @GeneratedValue(strategy=GenerationType.AUTO)
- @Column(name="role_id")
- private Long id;
- @Column(name="role", unique=true)
- private String role;
- @ManyToMany(cascade=CascadeType.ALL, mappedBy="roles")
- private Collection<User> users;
- }
- @Controller
- public class PostController {
- @Autowired
- private PostService postService;
- @Autowired
- private UserService userService;
- @RequestMapping(value="/newPost", method=RequestMethod.GET)
- public String newPost(Principal principal, Model model) {
- User user = userService.findByUsername(principal.getName());
- if(user != null) {
- Post post = new Post();
- post.setUser(user); // throws Exceptions.
- model.addAttribute("post", post);
- return "/postForm";
- } else {
- return "/error";
- }
- }
- @RequestMapping(value="/newPost", method=RequestMethod.POST)
- public String createNewPost(@Valid Post post, BindingResult bindingResult) {
- if(bindingResult.hasErrors()) {
- return "/postForm";
- } else {
- postService.save(post);
- return "redirect:/blog/" + post.getUser().getUsername();
- }
- }
- at java.base/java.util.AbstractCollection.toString(AbstractCollection.java:473) ~[na:na]
- at org.hibernate.collection.internal.PersistentBag.toString(PersistentBag.java:510) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
- at java.base/java.lang.String.valueOf(String.java:2951) ~[na:na]
- at java.base/java.lang.StringBuilder.append(StringBuilder.java:168) ~[na:na]
- at com.aaa.spring.blog.model.Role.toString(Role.java:16) ~[classes/:na]
- at java.base/java.lang.String.valueOf(String.java:2951) ~[na:na]
- at java.base/java.lang.StringBuilder.append(StringBuilder.java:168) ~[na:na]
- at java.base/java.util.AbstractCollection.toString(AbstractCollection.java:473) ~[na:na]
- at org.hibernate.collection.internal.PersistentBag.toString(PersistentBag.java:510) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
- at java.base/java.lang.String.valueOf(String.java:2951) ~[na:na]
- at java.base/java.lang.StringBuilder.append(StringBuilder.java:168) ~[na:na]
- at com.aaa.spring.blog.model.User.toString(User.java:25) ~[classes/:na]
- at java.base/java.lang.String.valueOf(String.java:2951) ~[na:na]
- at java.base/java.lang.StringBuilder.append(StringBuilder.java:168) ~[na:na]
- at java.base/java.util.AbstractCollection.toString(AbstractCollection.java:473) ~[na:na]
- at org.hibernate.collection.internal.PersistentBag.toString(PersistentBag.java:510) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
- at java.base/java.lang.String.valueOf(String.java:2951) ~[na:na]
Add Comment
Please, Sign In to add comment