问题描述:
在使用tk.mybatis.mapper.common.Mapper的Example时,在遇到实体类某几个字段对应的数据库表没有而报字段未定义问题
报错信息:
Caused by: oracle.jdbc.OracleDatabaseException: ORA-00904: "TAB_NAME": invalid identifier
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:637)
... 169 common frames omitted
实体类如下:
public class ModelInfo {
@Id
@GeneratedValue(generator = "JDBC")
private Long id;
private String effeDate;
private String lapsDate;
private String validIdet;
private String creater;
private String createDate;
//数据库无字段
private String type;
private String tabName;
解决1
加上java本身的注解即可@Transient,在实体类对应的属性上添加注解;
import javax.persistence.Transient;
public class ModelInfo {
@Id
@GeneratedValue(generator = "JDBC")
private Long id;
private String effeDate;
private String lapsDate;
private String validIdet;
private String creater;
private String createDate;
//数据库没有的字段
@Transient
private String type;
@Transient
private String tabName;
}
这里要注意:
@Transient
javax.persistence.Transient;
org.springframework.data.annotation.Transient;
在使用Example的过程中,只有使用java本身的才会识别,而使用spring则还是会报数据字段未定义的问题