猿问

我应该如何将值传递给 JPQL 查询?

我正在测试,这将检查对象是否已保存到数据库中。测试将保存具有唯一值的对象,然后我想从数据库中获取这个对象并检查它是否不为空。Id 是自动生成的,所以我需要按名称找到这个对象。


我的测试是这样的:


@Test

public void shouldAddNewEmployee(){


    String firstNameTest = "Jon";

    String lastNameTest = "Doe";

    double salary1test = 10.0;

    String salary2test = "10.00";

    String localityTest = "LosAngeles";

    String zipCodeTest = "00-000";

    String streetTest = "LosAngeles str.";

    int streetNumberTest = 10;


    Employee testEmployee = new Employee(

            firstNameTest,

            lastNameTest,

            salary1test,

            salary2test,

            localityTest,

            zipCodeTest,

            streetTest,

            streetNumberTest);


    EmployeeRepository.addNewEmployeeFromCLI(testEmployee);


    String customQueryFindJonDoe = "select e from Employee e where e.firstName = Jon and e.lastName = Doe";

    EntityManager entityManager = JPAUtils.openEntityManager();


    List<Employee> foundJonDoe = entityManager.createQuery(customQueryFindJonDoe).getResultList();


    Assertions.assertNotEquals(null, foundJonDoe);


    if (entityManager.isOpen()) {

        entityManager.close();

    }



运行后我得到错误:


引起:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:'where 子句'中的未知列'Jon'


这个查询应该是什么样子的?


慕婉清6462132
浏览 157回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答