0
我使用的是春天的数据JPA获取使用ignoreCase属性数据为大写:春数据JPA查询生成忽略大小写,以避免列数据
Employee类:
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "EMPLOYEE")
public class Employee {
@Id
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Employee(String id, String name) {
this.id = id;
this.name = name;
}
}
测试案例来获得存储值:
@RunWith(SpringRunner.class)
@SpringBootTest
@DataJpaTest
public class EmapleApplicationTests {
@Autowired
private EntityManager entityManager;
@Autowired
private EmployeeRespository employeeRespository;
@Test
public void loadEmployeeData() {
entityManager.persist(new Employee("ID1", "abab"));
Employee e = employeeRespository.findByIdIgnoreCase("id1");
assertEquals("abab", e.getName());
}
}
当我使用findByIdIgnoreCase以下是如何产生的查询:
select employee0_.id as id1_0_, employee0_.name as name2_0_ from employee employee0_ where upper(employee0_.id)=upper(?)
我不希望upper(employee0_.id)转换为大写,因为我知道数据已经在底层数据库中大写了。我只想要传递的上层(?)来获取要转换大写的数据,我想这样做来提高性能。有没有办法做到这一点?