【发布时间】:2021-03-20 19:24:32
【问题描述】:
我有两张表,即员工和部门。两个表都与列部门代码映射。我在这之间使用@OneToOne 关系。但是由于部门代码中的空格,我的查询失败了。
@Table(name = "EMP_MASTER")
public class Employee{
@Id
@Column(name = "idcode")
private String idcode;
@OneToOne
@JoinColumn(name="DEPT_CD", referencedColumnName = "DEPT_CD")
private Department dept;
//some more columns
}
@Table(name = "DEPT_MASTER")
public class Department{
@Id
@Column(name = "DEPT_CD")
private String deptCode;
//some more columns
}
在存储库中,我使用的是简单的查询方法。
Optional<Employee> findByIdcodeIs(String idcode);
查询也很完美;但是这个连接不能正常工作。
left outer join
dept_master deptmaster1_
on employee0_.dept_cd=deptmaster1_.dept_cd
而不是这个,如果我使用 TRIM() 在数据库级别更改以下查询,那么它会给我正确的结果。
left outer join
dept_master deptmaster1_
on TRIM(employee0_.dept_cd)=TRIM(deptmaster1_.dept_cd)
那么有没有办法在映射级别上应用修剪?
【问题讨论】:
标签: oracle spring-boot jpa mapping