System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,特别涉及一种jpa(java peresistence api,java持久层api)数据转换方法、装置、电子设备及存储介质。
技术介绍
1、在java研发过程中,使用spring jpa repository接收数据时,可能存在多个字段。相关技术中,只能用数据库表映射的entity或者projection接口类来接收,然而,最后将数据展示给客户端时,还要再将数据转换到自定义的vo(值对象类),若直接使用自定义的vo类来接收就会抛出类型转换错误异常。
2、此外,相关技术中的方案在接收数据的过程中需要经历多次转换过程,代码复用率较低,编程不仅繁琐,后续的可维护性也不强,不具备灵活性,亟待解决。
技术实现思路
1、本申请提供一种jpa数据转换方法、装置、电子设备及存储介质,以解决springjpa repository接收数据存在多个字段时,只能用数据库表映射的entity或者projection接口类来接收的限制,减少中间转换过程,提高代码的复用性。
2、本申请第一方面实施例提供一种jpa数据转换方法,包括以下步骤:
3、获取待转换数据;基于所述待转换数据的目标转换类型,注册目标转换器类,并在容器启动后,利用所述目标转换器类的第一方法判断所述待转换数据是否可识别;若所述待转换数据可识别,则利用所述目标转换器类的第二方法将所述待转换数据的数据类型转换为所述目标转换类型,并将转换结果发送至预设移动终端。
4、可选地,在一些
5、可选地,在一些实施例中,在获取所述待转换数据之前,还包括:定义所述目标转换器类,所述目标转换器类用于spring框架中的指定接口的第一方法和第二方法。
6、可选地,在一些实施例中,所述注册所述目标转换器类,还包括:通过调用第三方法注册所述目标转换器类。
7、可选地,在一些实施例中,所述利用所述目标转换器类的所述第二方法将所述待转换数据的数据类型转换为所述目标转换类型,包括:基于所述值对象类,利用预设的查询方法接收多个待转换数据,所述待转换数据包含字段名称和字段值;循环遍历每个待转换数据的所述字段名称,利用预设的反射机制调用第四方法,得到所述目标类型数据,直至处理完接收的所述多个待转换数据,结束循环。
8、可选地,在一些实施例中,在利用所述预设的反射机制调用所述第四方法之前,还包括:按照预设调整策略,调整所述字段名称中目标位置的字符,并在所述字段名称前拼接预设的字符串,得到所述第四方法的名称。
9、本申请第二方面实施例提供一种jpa数据转换装置,包括:
10、获取模块,用于获取待转换数据;识别模块,用于基于所述待转换数据的目标转换类型,注册目标转换器类,并在容器启动后,利用所述目标转换器类的第一方法判断所述待转换数据是否可识别;转换模块,用于在所述待转换数据可识别的情况下,利用所述目标转换器类的第二方法将所述待转换数据的数据类型转换为所述目标转换类型,并将转换结果发送至预设移动终端。
11、可选地,在一些实施例中,在获取所述待转换数据之前,所述获取模块,还用于:创建一个用于标记的接口类,并定义一个值对象类,并通过所述值对象类实现所述接口类;在所述接口类中创建多组转换对,得到转换对集合,其中,每组转换对包括源类型和目标类型;将所述转换对集合提供给所述第一方法。
12、可选地,在一些实施例中,在获取所述待转换数据之前,所述获取模块,还用于:定义所述目标转换器类,所述目标转换器类用于spring框架中的指定接口的第一方法和第二方法。
13、可选地,在一些实施例中,所述注册所述目标转换器类,所述识别模块,还用于:通过调用第三方法注册所述目标转换器类。
14、可选地,在一些实施例中,所述利用所述目标转换器类的所述第二方法将所述待转换数据的数据类型转换为所述目标转换类型,所述转换模块,具体用于:基于所述值对象类,利用预设的查询方法接收多个待转换数据,所述待转换数据包含字段名称和字段值;循环遍历每个待转换数据的所述字段名称,利用预设的反射机制调用第四方法,得到所述目标类型数据,直至处理完接收的所述多个待转换数据,结束循环。
15、可选地,在一些实施例中,在利用所述预设的反射机制调用所述第四方法之前,所述转换模块,还用于:按照预设调整策略,调整所述字段名称中目标位置的字符,并在所述字段名称前拼接预设的字符串,得到所述第四方法的名称。
16、本申请第三方面实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如上述实施例所述的jpa数据转换方法。
17、本申请第四方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以用于实现如上述实施例所述的jpa数据转换方法。
18、由此,本申请通过获取待转换数据,基于待转换数据的目标转换类型,注册目标转换器类,并在容器启动后,利用目标转换器类的第一方法判断待转换数据是否可识别,若待转换数据可识别,则利用目标转换器类的第二方法将待转换数据的数据类型转换为目标转换类型,并将转换结果发送至预设移动终端。由此,解决了spring jpa repository接收数据存在多个字段时,只能用数据库表映射的entity或者projection接口类来接收的限制,减少中间转换过程,提高代码的复用性。
19、本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
本文档来自技高网...【技术保护点】
1.一种JPA数据转换方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,在获取所述待转换数据之前,还包括:
3.根据权利要求1所述的方法,其特征在于,在获取所述待转换数据之前,还包括:
4.根据权利要求1所述的方法,其特征在于,所述注册所述目标转换器类,还包括:
5.根据权利要求2所述的方法,其特征在于,所述利用所述目标转换器类的所述第二方法将所述待转换数据的数据类型转换为所述目标转换类型,包括:
6.根据权利要求5所述的方法,其特征在于,在利用所述预设的反射机制调用所述第四方法之前,还包括:
7.一种JPA数据转换装置,其特征在于,包括:
8.根据权利要求7所述的装置,其特征在于,在获取所述待转换数据之前,所述获取模块,还用于:
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如权利要求1-6任一项所述的JPA数据转换方法。
10.一种计算机可读存储介质,其上
...【技术特征摘要】
1.一种jpa数据转换方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,在获取所述待转换数据之前,还包括:
3.根据权利要求1所述的方法,其特征在于,在获取所述待转换数据之前,还包括:
4.根据权利要求1所述的方法,其特征在于,所述注册所述目标转换器类,还包括:
5.根据权利要求2所述的方法,其特征在于,所述利用所述目标转换器类的所述第二方法将所述待转换数据的数据类型转换为所述目标转换类型,包括:
6.根据权利要求5所述的方法,其特征在于,在利用所述预设的反射机...
【专利技术属性】
技术研发人员:李瑞,
申请(专利权)人:芜湖雄狮汽车科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。