powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / [Spring] Запись добавляется 2 раза в БД
2 сообщений из 2, страница 1 из 1
[Spring] Запись добавляется 2 раза в БД
    #37934693
Жентос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, почему запись добавляется 2 раза в БД? Я понимаю, что дело в двойном сохранении, но разве не надо сохранять отдельно родительскую таблицу и подчиненную?

Контроллер
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
@RequestMapping(value = "/addComment/{topicId}", method = RequestMethod.POST)
        public String saveComment(@PathVariable int topicId, @ModelAttribute("newComment")Comment comment, BindingResult result, Model model){
			Topic commentedTopic = topicService.findTopicByID(topicId);
			commentedTopic.addComment(comment);
			
			// TODO: Add a validator here
			if (!comment.isValid() ){
				return "//";
				
            }
			// Go to the "Show topic" page
			commentService.saveComment(comment);
			
            return "redirect:../details/" + topicService.saveTopic(commentedTopic);

        }




Репозиторий
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
@Service
@Transactional
public class CommentService {

	@Autowired
	private CommentRepository commentRepository;
	
	public int saveComment(Comment comment){
		return commentRepository.save(comment).getId();
		
	}	

}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
@Service
@Transactional
public class TopicService {
	@Autowired
	private TopicRepository topicRepository;
	
	public int saveTopic(Topic topic){
		return topicRepository.save(topic).getId();

	}
}



Модель
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
@Entity
@Table(name = "T_TOPIC")
public class Topic {
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int id;
	
	@ManyToOne
	@JoinColumn(name="USER_ID")
	private User author;
	
	@Enumerated(EnumType.STRING)	
	private Tag topicTag;
	
	private String name;
	private String text;
}

@Entity
@Table(name = "T_COMMENT")
public class Comment
{
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
	
	@ManyToOne
	@JoinColumn(name="TOPIC_ID")
	private Topic topic;
    
	@ManyToOne
	@JoinColumn(name="USER_ID")
    private User author;

    private String text;
    private Date creationDate;
}
...
Рейтинг: 0 / 0
[Spring] Запись добавляется 2 раза в БД
    #37938469
Жентос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я зря вызывал 2 раза метод save()
У хорошо размеченной модели достаточно вызвать этот метод для сущности-хозяина
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / [Spring] Запись добавляется 2 раза в БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]