4 lab fix

This commit is contained in:
Павел Сорокин 2023-04-04 15:29:47 +04:00
parent 6a071071e2
commit eecfe393e4
3 changed files with 24 additions and 2 deletions

View File

@ -26,7 +26,7 @@ public class Post {
@ManyToOne(fetch = FetchType.EAGER,cascade = CascadeType.MERGE)
private User user;
@OneToMany(mappedBy = "post",fetch = FetchType.EAGER,cascade = CascadeType.MERGE)
@OneToMany(mappedBy = "post",fetch = FetchType.EAGER,cascade = CascadeType.ALL,orphanRemoval = true)
private List<Comment> comments=new ArrayList<>();
public Post(){}

View File

@ -4,11 +4,13 @@ import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import ru.ulstu.is.sbapp.Comment.model.Comment;
import ru.ulstu.is.sbapp.Comment.repository.CommentRepository;
import ru.ulstu.is.sbapp.Post.model.Post;
import ru.ulstu.is.sbapp.Post.repository.PostRepository;
import ru.ulstu.is.sbapp.User.model.User;
import java.util.List;
import java.util.Optional;
public class UserRepositoryImpl implements UserRepositoryExtension {
@ -31,6 +33,15 @@ public class UserRepositoryImpl implements UserRepositoryExtension {
em.createQuery("Delete from Comment Where user.id = :id")
.setParameter("id",id)
.executeUpdate();
List<Post> posts = em.createQuery("Select p from Post p where user.id = :id",Post.class)
.setParameter("id",id)
.getResultList();
for(var post : posts)
{
em.createQuery("Delete from Comment where post.id = :postId")
.setParameter("postId",post.getId())
.executeUpdate();
}
em.createQuery("Delete from Post Where user.id = :id")
.setParameter("id",id)
.executeUpdate();

View File

@ -69,13 +69,24 @@ public class JpaClientTests {
log.info("testUserReadAllEmpty: " + users.toString());
Assertions.assertEquals(users.size(), 0);
}
@Test
void testDeletePostwithcomments()
{
final User user = userService.addUser("Pasha","Sorokin","sorokin.zxcv@gmail.com");
final User user12 = userService.addUser("Anton","Sorokin","zxcv@gmail.com");
userService.addNewPost(user.getId(),"text","tezt");
final List<Post> post = postService.findAllPosts();
final Post post1 = post.get(0);
postService.addCommentToPost(post1.getId(),user12.getId(),"Da");
userService.deleteUser(user.getId());
}
@Test
void testAddAndDeletePost()
{
postService.deleteAllPosts();
userService.deleteAllUsers();
final User user = userService.addUser("Pasha","Sorokin","sorokin.zxcv@gmail.com");
final User user12 = userService.addUser("Anton","Sorokin","zxcv@gmail.com");
userService.addNewPost(user.getId(),"Text1","Text2"); //post
userService.addNewPost(user.getId(),"Привет","Да"); //post1
final List<Post> posts =postService.findAllPosts();