国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java中使用MapStruct實現對象轉換時使用@Mapping的expression表達式實現自定義轉換規(guī)則(多對一、獲取當前Date)

這篇具有很好參考價值的文章主要介紹了Java中使用MapStruct實現對象轉換時使用@Mapping的expression表達式實現自定義轉換規(guī)則(多對一、獲取當前Date)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

場景

Java中使用MapStruct實現對象轉換/實體屬性賦值/Bean屬性映射,避免大量setter和getter:

Java中使用MapStruct實現對象轉換/實體屬性賦值/Bean屬性映射,避免大量setter和getter_霸道流氓氣質的博客-CSDN博客

上面介紹了mapstruct的簡單使用,某些場景下需要自定義轉換規(guī)則,比如記錄時間字段默認獲取

當前時間、某個屬性需要根據兩個屬性的判定關系轉換。

注:

博客:
霸道流氓氣質的博客_CSDN博客-C#,架構之路,SpringBoot領域博主

實現

1、這是可以通過@Mapping的expression來進行設置。

比如設置某個字段為獲取當前時間。

@Mapping(target = "recordTime",expression = "java(new java.util.Date())")

注意這里的new Date,必須是全路徑的,不能直接寫new Date()

2、如果邏輯較復雜,需要對轉換前的實體的多個屬性進行邏輯判斷,甚至可以

在expression中寫明執(zhí)行某個函數,將實體類作為參數傳遞。

@Mapping(target = "lastLoginTime",expression = "java(DriverNoLoginConvert.getLastLoginTime(busMailList))")

這里轉換接口類就叫DriverNoLoginConvert,然后getLastLoginTime是其靜態(tài)方法,方法實現如下

??? static Date? getLastLoginTime(BusMailList busMailList){
??????? return null == busMailList.getBindingTime()?busMailList.getUpdateTime():busMailList.getBindingTime();
??? }

這里的轉換規(guī)則就是,實體的bindingTime不為空,則用該字段進行轉換,如果為空,則用updateTime字段

進行轉換。

3、完整的轉換接口類實例文章來源地址http://www.zghlxwxcb.cn/news/detail-624408.html

import com.ruoyi.common.core.domain.basicinfomanage.BusMailList;
import com.ruoyi.common.core.domain.reportmanagement.BusDriverNoLoginRecord;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;

import java.util.Date;

@Mapper
public interface DriverNoLoginConvert {
??? DriverNoLoginConvert INSTANCE = Mappers.getMapper(DriverNoLoginConvert.class);

??? @Mappings({
??????????? @Mapping(source = "carNumber",target = "carNum"),
??????????? @Mapping(source = "driverNumber",target = "lastLoginNumber"),
??????????? @Mapping(target = "id",ignore = true),
??????????? @Mapping(target = "lastLoginTime",expression = "java(DriverNoLoginConvert.getLastLoginTime(busMailList))"),
??????????? @Mapping(target = "recordTime",expression = "java(new java.util.Date())")
??? })
??? BusDriverNoLoginRecord mailList2NoLoginRecord(BusMailList busMailList);

??? static Date? getLastLoginTime(BusMailList busMailList){
??????? return null == busMailList.getBindingTime()?busMailList.getUpdateTime():busMailList.getBindingTime();
??? }
}

到了這里,關于Java中使用MapStruct實現對象轉換時使用@Mapping的expression表達式實現自定義轉換規(guī)則(多對一、獲取當前Date)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • MyBatis實現 Java 對象和數據庫中日期類型之間的轉換(超詳細)

    MyBatis實現 Java 對象和數據庫中日期類型之間的轉換(超詳細)

    數據庫存儲的時間字段的類型是datetime Java實體類的時間字段類型是Date 需求:響應前端的時間字段格式為”yyyy-MM-dd HH:mm:ss“ 1、定義resultMap 定義 Java 對象和數據庫表字段的對應關系,在 mapper.xml 文件中使用 #{屬性名,jdbcType=數據庫字段類型} 來進行參數傳遞和結果集映射,例如

    2024年02月15日
    瀏覽(18)
  • java 對象list使用stream根據某一個屬性轉換成map的幾種方式

    可以使用Java 8中的Stream API將List轉換為Map,并根據某個屬性作為鍵或值。以下是一些示例代碼: 在這個示例中,將Person對象列表轉換為Map,其中鍵為Person對象的name屬性,值為Person對象本身。 在這個示例中,將Person對象列表轉換為Map,其中鍵為Person對象本身,值為Person對象的

    2024年02月13日
    瀏覽(97)
  • java如何將對象轉換為map?如何將map轉換為對象?

    目錄 1、使用 BeanUtils 2、ObjectMapper 3、Gson 4、Jackson 5、手動進行轉換 1、使用 BeanUtils ????????BeanUtils 是 Apache Commons BeanUtils 項目提供的一個常用的工具類庫,該工具類庫提供了一系列很有用的方法,包括將 Bean 轉換成 Map 對象、將 Map 對象轉換成 Bean 以及獲取 Bean 的屬性值等

    2024年02月07日
    瀏覽(19)
  • Java對象類型的轉換+instanceOf判斷對象類型

    將子類的實例對象定義為父類類型,這種稱為 向上轉型 ;將父類的實例對象定義為子類類型,這種稱為 向下轉型 ,向下轉型必須使用 顯示轉換 ,否則編譯器會報錯。 ? ? ? ? ? instanceof操作符,可以用來判斷是否一個類實現了某個接口,也可以用來判斷一個實例對象是否

    2024年02月08日
    瀏覽(30)
  • 4. 對象映射 - Mapping.Mapster

    4. 對象映射 - Mapping.Mapster

    在項目中我們會經常遇到對象的映射,比如像Model和Dto之間的映射,或者是對象的深拷貝,這些都是需要我們自己實現的。此時,項目中會出現很多初始化對象的代碼,這些代碼寫起來相當的枯燥乏味,那么有沒有什么辦法減輕我們的工作量,使得我們可以把時間花費到業(yè)務

    2024年02月04日
    瀏覽(16)
  • JAVA 對象轉換為JSON

    轉載:如何把java對象轉換為json java對象怎么轉成json_clghxq的技術博客_51CTO博客 1、Java對象列表轉換為JSON對象數組,并轉為字符串 JSONArray jsonArray = JSONArray.fromObject(list); String jsonArrayStr = jsonArray.toString(); 2、把Java對象轉換成JSON對象,并轉化為字符串 JSONObject jsonObject = JSONObject.

    2024年02月10日
    瀏覽(22)
  • Java入門-java對象與json之間的轉換

    使用jackson實現java對象轉為Json字符串 引入依賴 對象轉json字符串 測試 使用Jackson對象完成轉換工作。 json字符串轉換對象 測試

    2024年02月22日
    瀏覽(18)
  • Java中父子對象的相互轉換問題

    Java中父子對象的相互轉換問題

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 繼承關系使一個子類繼承父類的特征,并且附加一些新特征。子類是它父親的特殊化,每個子類的實例也是它父親的實例,但反過來不成立,因此,子類對象和父類對象在一定條件下也能相互轉換,這種

    2024年04月26日
    瀏覽(40)
  • MySQL表結構轉換為ES索引Mapping

    MySQL表結構轉換為ES索引Mapping

    日常開發(fā)過程中肯定會存在MySQL表數據遷移至ES的情況,以canal為例,數據遷移時需要提前在ES中創(chuàng)建索引Mapping,但是如果碰到字段特別的表時,創(chuàng)建Mapping將是一件耗費心神的事情。為了解決這些重復工作,我使用Python編寫了一個腳本,自動將MySQL中的表結構同步到ES中,本腳

    2024年02月03日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包