有没有办法可以从bean属性中检索列名?
例如我有一个用户表
user(user_id,user_name)
和一个班级
class User{
private Integer userId;
private String userName;
//getter setter
}
我的配置文件中有一个resultMap
<resultMap id="userMap" type="User">
<id property="userId" column="user_id" javaType="Integer" jdbcType="INTEGER" />
<result property="userName" column="user_name" javaType="String" jdbcType="VARCHAR" />
</resultMap>
如果我有字符串 userId
,我有什么办法可以获得字符串 user_id答案 0 :(得分:1)
以下代码段是否满足您的要求?
String propertyName = "userId";
Pattern p = Pattern.compile("([a-z0-9])([A-Z])");
Matcher m = p.matcher(propertyName);
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, m.group(1) + "_" + m.group(2).toLowerCase());
}
m.appendTail(sb);
答案 1 :(得分:1)
Configuration configuration = sessionFactory.getConfiguration();
ResultMap resultMap = configuration.getResultMap("User");
for(ResultMapping resultMapping : resultMap.getResultMappings()) {
System.out.println(resultMapping.getColumn() + "::"+resultMapping.getProperty());
}
逐个获取列属性映射,然后可以获取属性的列名。