当前位置: 首页 > news >正文

做网站的基本功能网站首页文案模板

做网站的基本功能,网站首页文案模板,深圳美容网站建,外链网站大全AttributeConverter 是 JPA 中的一个接口,,用于实体属性和 数据库字段,,之间的转换,,,类似mybatis中的typeHandler AttributeConverter使用 定义一个类实现AttributeConverter接口&#xff0c…

AttributeConverter 是 JPA 中的一个接口,,用于实体属性和 数据库字段,,之间的转换,,,类似mybatis中的typeHandler

AttributeConverter使用
  • 定义一个类实现AttributeConverter接口,,这个接口有两个泛型,第一个泛型:要转换的当前字段的类型 ,,第二个泛型:数据库中应该映射出来的类型,, 比如json–》 映射出来是String,,但是想使用一个类去接收,前端返回的就不是String,而是json对象

通用的接收,不考虑类的业务,,如果是单个的json可以使用 Map<String,Object> 接收,,如果是 json数组 ,,使用List<Object> 接收

  • 在这个类上面打上@Converter 注解,
  • 在使用这个Converter的字段上 ,打上@Convert(converter = List2Json.class)
@Component
@Converter
public class List2Json implements AttributeConverter<List<Object>,String> {@AutowiredObjectMapper objectMapper;@Overridepublic String convertToDatabaseColumn(List<Object > attribute) {try {return objectMapper.writeValueAsString(attribute);} catch (JsonProcessingException e) {e.printStackTrace();throw new ServerErrorException(9999);}}@Overridepublic List convertToEntityAttribute(String dbData) {if (dbData == null){return null;}try {return objectMapper.readValue(dbData, List.class);} catch (JsonProcessingException e) {e.printStackTrace();throw new ServerErrorException(9999);}}
}

问题: 这样了写了之后,所有对象被反序列化成 Map。。所有的json数组,被反序列化 List<Object>
他就不是一个类,,也就没有一个类具备的业务意义,类应该有自己的职责,内部会有一些自己的内置方法,,并不只是作为数据库映射的实体

解决方法:
不使用Jpa的Converter类型转换,,定义一个通用的工具类,去自己转换,,在setter,和getter方法中

/*** 任何对象变成  数据库中json类型的字符串* @Date 2023/8/3 14:40* @Author cc*/
@Component
public class GenericAndJson {private static ObjectMapper objectMapper;@Autowiredpublic  void setObjectMapper(ObjectMapper objectMapper) {GenericAndJson.objectMapper = objectMapper;}public static <T>  T jsonToObject(String s,Class<T> classT){if (s ==null){return null;}try {T t = objectMapper.readValue(s, classT);return t;} catch (JsonProcessingException e) {e.printStackTrace();throw new ServerErrorException(9999);}}public static<T> String objectToJson(T o){try {return objectMapper.writeValueAsString(o);} catch (JsonProcessingException e) {e.printStackTrace();throw new ServerErrorException(9999);}}/*** 返回的是  List<Map> 不是业务对象*/public static <T> List<T> jsonToList(String s){if (s == null){return  null;}try {List<T> list = objectMapper.readValue(s, new TypeReference<List<T>>() {});return list;} catch (JsonProcessingException e) {e.printStackTrace();throw new ServerErrorException(9999);}}public static <T> T jsonToList(String s,TypeReference<T> tr){if (s == null){return  null;}try {T t = objectMapper.readValue(s, tr);return t;} catch (JsonProcessingException e) {e.printStackTrace();throw new ServerErrorException(9999);}}}
http://www.15wanjia.com/news/156608.html

相关文章:

  • 网站管理功能图网站设计网站开发
  • 江西宗杰建设工程有限公司网站大型门户网站建设哪家好
  • 二手表网站百度企业官网
  • 网站建设意向书郑州专业网站推广公司
  • 建设部网站监理工程师报名lamp安装wordpress
  • 网站开发 居易国际服务器做jsp网站教程视频播放
  • 合肥高端网站建设公司th7 wordpress主题
  • 自己做网站需要服务器吗百度seo公司报价
  • 酒水销售网站模板网站非法收录用户信息
  • 微模板如何建微网站wordpress 百万
  • 网站一级栏目新手学做网站 pdf 网盘
  • 河南网站建设首选公司个人特种证件查询网站
  • 国外比较好的建筑设计网站商城型网站的概念
  • 网站建设排名优化技巧五金塑胶 技术支持 东莞网站建设
  • 网站设计的字体如何选择适合的图像和照片
  • 金湖企业网站制作wordpress邮件配置
  • 做质量计量的网站有哪些wordpress 自动保存 插件
  • 万国企业网西安网站自然排名优化
  • 网站的规划建设与分析vs2012建设网站
  • 如何提升网站流量网站建设研究方法
  • 桂林网站设计制作成都旅游路线一览表
  • 郑州做网站的公司哪些电子商城网站怎么做
  • 河北建筑工程信息公开网赣州网站优化
  • 社群营销策略有哪些成都seo招聘信息
  • 北京燕郊网站建设app推广全国代理加盟
  • 微信网站设计价格iphone私人网址
  • 橱柜衣柜做网站wordpress 网址导航
  • 网站运营之怎样做好seo优化佛山网站建设外贸
  • 网站开发质量管理建设简单网站的图纸
  • 枣庄高端网站定制外国人做的学汉字网站