запрос на соединение работает из MySQL, но не из Java - PullRequest
0 голосов
/ 20 мая 2019

У меня есть запрос на присоединение в моем приложении. Предполагается получить студентов, у которых еще нет созданной учетной записи. Я думал, что запрос работал, пока я не написал модульный тест, и там я заметил, что запрос возвращает тех же студентов, даже если учетная запись уже была создана.

Запрос

SELECT student_table.* FROM student student_table WHERE NOT EXISTS (SELECT app_relationship_table.student_id FROM relationship_table app_relationship_table WHERE student_table.student_id = app_relationship_table.student_id)

Что я имею в виду под приведенным выше запросом: укажите всех учеников, которые существуют в таблице учеников, но не присутствуют в таблице app_relationship_table, таким образом, чтобы я знал, какие ученики пропустили свой аккаунт. Забавно то, что этот запрос работает так, как должен в MySql Workbench, но он не работает из моего кода Java. Он продолжает давать мне тех же учеников, у которых вначале не было учетной записи студента, и, таким образом, создавать дублированные данные в базе данных.

Я запускаю проект с локального хоста. Когда я в первый раз запускаю его, он работает нормально, но когда я перезагружаю страницу или выполняю запланированное задание, это приводит к путанице и дает мне тех же учеников, даже если учетная запись создана и таблица отношений обновлена ​​новыми внешними ключами. Я использую CrudRepository для сохранения данных

Создать код учетной записи студента:

@Override
    public void createStudentAccount(List<Student> studentsWithoutStudentAccount) {

        studentsWithoutStudentAccount.forEach(student->{

            String username = "username";
            String password = "password";

            StudentAccount studentAccount = new StudentAccount (username, password, student);
            save(studentAccount);

        });

    }

Кто-нибудь может мне помочь? Я не знаю, что мне здесь не хватает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...