12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- /*
- * ********************************************************************************************************************
- *
- * iFHS7.
- * ;BBMBMBMc rZMBMBR BMB
- * MBEr:;PBM, 7MBMMEOBB: BBB RBW
- * XK: BO SB. :SZ MBM. c;; ir BBM :FFr :SSF: ;xBMB:r iuGXv. i:. iF2;
- * DBBM0r. :D S7 ;XMBMB GMBMu. MBM: BMB MBMBBBMBMS WMBMBMBBK MBMBMBM BMBRBMBW .MBMBMBMBB
- * :JMRMMD .. , 1MMRM1; ;MBMBBR: MBM ;MB: BMB: MBM. RMBr sBMH BM0 UMB, BMB. KMBv
- * ;. XOW B1; :uM: 1RE, i .2BMBs rMB. MBO MBO JMB; MBB MBM BBS 7MBMBOBM: MBW :BMc
- * OBRJ.SEE MRDOWOR, 3DE:7OBM . ;BMB RMR7BM BMB MBB. BMB ,BMR .BBZ MMB rMB, BMM rMB7
- * :FBRO0D0 RKXSXPR. JOKOOMPi BMBSSWBMB; BMBB: MBMB0ZMBMS .BMBOXRBMB MBMDE RBM2;SMBM; MBB xBM2
- * iZGE O0SHSPO. uGZ7. sBMBMBDL :BMO OZu:BMBK, rRBMB0; ,EBMB xBMBr:ER. RDU :OO;
- * ,BZ, 1D0 RPSFHXR. xWZ .SMr . .BBB
- * :0BMRDG RESSSKR. 2WOMBW; BMBMR
- * i0BM: SWKHKGO MBDv
- * .UB OOGDM. MK, Copyright (c) 2015-2019. 斯伯坦机器人
- * , XMW ..
- * r All rights reserved.
- *
- * ********************************************************************************************************************
- */
- package com.persagy.database.extensions
- import com.persagy.base.extensions.getAllDeclaredFields
- import com.persagy.database.SFilter
- import javax.persistence.Id
- /**
- * 取得主键字段值
- *
- * @return Id字段值
- */
- fun Any.keyValue(property: String = "id"): Any? {
- /** 依次取id列表中的键值 */
- javaClass.keyFieldList().forEach {
- if (it.name == property) {
- val accessible = it.isAccessible //canAccess(this)
- it.isAccessible = true
- val id = it.get(this)
- it.isAccessible = accessible
- return id
- }
- }
- return null
- } // Fun Serializable.keyValue()
- /**
- * 取得主键与值的映射
- *
- * @return 主键映射。key为属性名
- */
- fun Any.keyMap(): HashMap<String, Any> {
- val map = HashMap<String, Any>()
- val clz = this::class.java
- for (field in clz.getAllDeclaredFields()) {
- // val anno = field.getAnnotation(Column::class.java)
- if (field.getAnnotation(Id::class.java) != null)
- {
- val accessible = field.isAccessible //canAccess(this)
- field.isAccessible = true
- map[field.name] = field.get(this)
- field.isAccessible = accessible
- }
- }
- return map
- } // Fun Serializable.keyMap()
- /**
- * 获得主键的过滤条件
- *
- * @return 主键的过滤条件
- */
- fun Any.filterListByKeys(): ArrayList<SFilter> {
- val filterList = ArrayList<SFilter>()
- this.keyMap().forEach {
- filterList.add(SFilter.eq(it.key, it.value))
- }
- return filterList
- } // Fun Serializable.filterListByKeys()
|