Я пытаюсь создать сценарий, в котором я создаю сущность в главном потоке, а затем использую другой поток, чтобы запросить ту же сущность, которая была только что создана.Однако, если я выполню запрос для извлечения сущности за пределы потока, он вернет значение.Однако, если я сделаю запрос в потоке, я получу null
.Я приложил исходный код с комментариями и постарался сделать его простым.Буду признателен, если кто-нибудь может помочь мне указать на проблемуЯ использую JPA
и Spring framework
.Для базы данных я использую postgresql
.Спасибо.Вот пример программы:
@Test
public void test() {
Employee generatedEmployee = employeeService.createEmployee(passEmployeeInfo()); // CREATE TEST EMPLOYEE.. passEmployeeInfo() just sets name, phone etc.
System.out.println(generatedEmployee.getReferenceId()); //Output is: 20
generatedEmployee.setReferenceId(30L); //update the referenceId here...
long refId = generatedEmployee.getReferenceId();
Employee employeeFromDB = employeeQuery.getEmployeeByReferenceId(refId); //Use refId to get Employee from table
System.out.println(employeeFromDB); //Output is: Employee [id=2, refId=30, ...]
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
Employee employee = employeeQuery.getEmployeeByReferenceId(refId);
System.out.println("The employee inside run method is: " + employee); //Output is NULL here.. This is what I am trying to understand.
}
});
thread.start();
}