【发布时间】:2020-09-04 14:39:00
【问题描述】:
我想保留一个结构如下的树状实体:
CREATE TABLE `task` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`parent_id` INT(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
@Data
@Table
public class Task {
@Id
private Integer id;
@MappedCollection(idColumn = "parent_id")
private Set<Task> subItems;
}
public interface TaskRepository extends org.springframework.data.repository.CrudRepository<Task, Integer> {}
初始化实体:
Task task = new Task();
Task task2= new Task();
Task task3= new Task();
task.setSubItems(Set.of(task2));
task2.setSubItems(Set.of(task3));
taskRepository.save(task);//auto-generated method
Spring data jdbc 仅对“task2”和“task”执行插入操作。 'task3' 被忽略。
Java11、Spring-data-jdbc 2.0.3、Mariadb 10.3
【问题讨论】:
-
你能告诉我们存储库类吗?
-
Repository 代码尽量简单:import org.springframework.data.repository.CrudRepository;公共接口 TaskRepository 扩展 CrudRepository
{}
标签: java mariadb spring-data-jdbc