反射方式获取JPA Entity的属性和值
2015-08-09 14:27
246 查看
在记录日志或者调试的时候,往往需要输出数据库查询或者写入的值,或者在接口交互的时候,可能需要将实体转成JSON串传递出去。
在JPA中是以Entity的示例方式传递的。但是如果直接使用
方法的话,输出的结果是
以下描述采用反射方式获取Entity的字段和值的方法:
通过以上改造后,记录或者通过网络接口调用传输
在JPA中是以Entity的示例方式传递的。但是如果直接使用
Entity.toString()
方法的话,输出的结果是
entity@内存地址的形式,无法得知Entity的内部具体的属性和值。
以下描述采用反射方式获取Entity的字段和值的方法:
反射工具类
以将实体转为JSON串为例:public class ReflectEntity{ public static String toStr(Object o){ try{ StringBuilder sb = new StringBuilder(); sb.append("{"); Class cls = o.getClass(); Field[] fields = cls.getDeclaredFields(); for(Field f : fields){ f.setAccessible(true); sb.append("\"").append(f.getName()).append("\":\"").append(f.get(o)).append("\","); } return String.format("%s}",sb.subString(0,sb.length()-1)); } catch(Exception e){ return null; } } }
重写toString方法
假设有个JPA Entity:@Entity public class E{ private String colA; private String colB; //getter, setter 略 //在此处使用反射方法即可 @Override public String toString(){ return ReflectEntity.toStr(this); } }
通过以上改造后,记录或者通过网络接口调用传输
Entity或者
List<Entity>都能顺利转为JSON串。
相关文章推荐
- 控制台下改变背景或字体颜色
- 计算机网络-Tcp的四次挥手
- UI04_UITouch(视图随手移动效果)
- 耐心排序
- 数据挖掘常用的的R包和函数的集合
- JPA下利于快速开发、快速调整业务的程序结构设计
- 2015/8/9 到家了,学完了CodeCademy的Python
- Android中用PULL解析XML
- leetcode 108 —— Convert Sorted Array to Binary Search Trees
- 重复子串问题(一):寻找最长重复子串
- Dungeon Master
- Dungeon Master 分类: 搜索 POJ 2015-08-09 14:25 4人阅读 评论(0) 收藏
- Androd WebView中的图片浏览及缩放
- 19 擅长排列的小明【dfs】
- oc中的工厂设计模式
- Spring基于自定义注解的用户认证
- Spring实现定时任务
- 线程小结
- Android中使用友盟时用Ant进行多渠道打包及相关问题
- block深入学习