说明:
获取实体对象表名,主要是为了获取表名做特殊的业务,但是获取表名不一定要这样获取,但是这是为了统一而实现的功能,其实是在这里面实现的,https://blog.csdn.net/qq_38428623/article/details/105234896
1、实体类型
import javax.persistence.Table;
@Data
@Table(name = "Test")
public class Test {
/**
* 主键
*/
@Id
private String id;
/**
* 请假人ID
*/
@Column(name = "name")
private String name;
}
2、基本查询(仅核心代码)
/**
* T:实体类
*/
public class BaseQuery<T> {
/**
* 获取实体类的表名
*/
public String getTableName(){
finalParameterizedType paraType = (ParameterizedType)
this.getClass().getGenericSuperclass();
final Type[] types = paraType.getActualTypeArguments();
String tableName = null;
for (final Type type : types) {
final Annotation annotation = ((Class) type).getAnnotation(Table.class);
if (annotation == null) {
continue;
}
tableName = ((Table) annotation).name();
break;
}
return tableName;
}
}