Файловая система - это грубо говоря ещё одна бд, только для файлов, правильно я понимаю?
Я просто не очень понимаю, к чему вы подключаете репозиторий.
А мне больше интересна просто генерация страниц с картинками...
-- Учитель "А" (10)
-- Учитель "В" (5)
...
-- Учитель "А" (10)
---- Ученик "А" (3)
---- Ученик "В" (4)
-- Учитель "В" (5)
---- Ученик "А" (2)
---- Ученик "В" (7)
...
To make a long story short, you should not use transactions within a parallel stream. This is because each thread in the parallel stream has its own name thus it does participate in the transaction.
Подход разумный, но ведь здесь мы ничего не записываем в БД. Она пополняется вручную и программно используется только для чтения. Проблема в том, что в compile-time не известно, сколько полей находится в таблице.
Проблема в том, что в compile-time не известно, сколько полей находится в таблице.
Map<String, String>
.
Никаких проблем. Только какую проблему Вы предлагаете решить таким образом?
Я решил хранить все это в таблице БД. Ключ это ссылка на страницу,
Если XPath не задан, значит на странице нет этого значения, и в выходных данных не должно быть упоминания о нем.
И теперь я ожидаю, что в таблице students_courses появится связи этого студента с курсами истории и математики. А связь, например, с курсом философии будет удалена. Не помогает ни CascadeType.ALL ни PERSIST ни MERGE.
@Entity
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "`name`")
private String name;
@ManyToMany(
cascade = { CascadeType.MERGE, CascadeType.PERSIST }
)
@JoinTable(name = "student_courses",
joinColumns = @JoinColumn(name = "student_id"),
inverseJoinColumns = @JoinColumn(name = "course_id")
)
private List<Course> courses;
}
@Entity
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Course {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "`name`")
private String name;
@ManyToMany(mappedBy = "courses")
private List<Student> students;
}
@Component
@RequiredArgsConstructor
public class InitDefaultData implements CommandLineRunner {
private final StudentDao studentDao;
@Override
public void run(String... args) throws Exception {
Course philosophy = Course.builder().name("Philosophy").build();
Course arithmetics = Course.builder().name("Arithmetics").build();
Course history = Course.builder().name("History").build();
Course medicine = Course.builder().name("Medicine").build();
List<Course> oldCourses = List.of(
philosophy, arithmetics
);
Student alex = Student.builder().name("Alex").courses(oldCourses).build();
studentDao.save(alex);
List<Course> newCourses = List.of(
history, medicine
);
alex.setCourses(newCourses);
studentDao.save(alex);
}
}
Student alex = Student.builder().name("Alex").courses(oldCourses).build();
studentDao.save(alex);
alex.setCourses(newCourses);
studentDao.save(alex);
По какому принципу JpaRepository обновляет/удаляет/добавляет записи в таблице связей?
System.out.println("Введите дата рождения: ");
int birthDate = scanner.nextInt();
public static void readData() {
Scanner scanner = new Scanner(System.in);
try {
System.out.println("Введите имя: ");
String name = scanner.nextLine();
System.out.println("Введите фамилию:");
String lastName = scanner.nextLine();
System.out.println("Введите дата рождения: ");
int birthDate = scanner.nextInt();
System.out.println("Введите начало год работы: ");
int startWorking = scanner.nextInt();
} catch (InputMismatchException exception){
System.err.println(exception.fillInStackTrace());
}
}
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
C:\Program Files\Java\jdk-15.0.1
Как мне кажется, да. Вам нужно создать класс с учетом структуры, которую вы хотите получить в конечном счете