小编ikh*_*vjs的帖子

映射结构:当源为空时,目标不应设置为空

我正在尝试使用 mapstruct 1.2.0.CR2 映射嵌套属性。(示例将customer.address.houseNumber映射到 userDTO.homeDTO.addressDTO.houseNo)。

期望:当 customer.address 为 null 时,我不想将 addressDTO 设置为 null。由于 addressDTO 包含“countyname”和其他已从其他不同源设置的属性。

请告知我是否可以设置某些属性/设置,以便当源为空时目标不会设置为空。

@Mapper( nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS )
public interface CustomerUserMapperNullCheck {

    @Mapping(source="address", target="homeDTO.addressDTO" )
    void mapCustomer(Customer customer, @MappingTarget  UserDTO userDTO)  ;

    @Mapping(source="houseNumber", target="houseNo" )
    void mapCustomerHouse(Address address, @MappingTarget  AddressDTO addrDTO)  ;

}
Run Code Online (Sandbox Code Playgroud)

我最初尝试像下面这样的单一映射

@Mapping(target="homeDTO.addressDTO.houseNo", source="address.houseNumber")
 abstract void mapCustomerHouse(Customer customer, @MappingTarget  UserDTO userDTO)  ; 
Run Code Online (Sandbox Code Playgroud)

然后尝试基于https://github.com/mapstruct/mapstruct/issues/649拆分映射。

两种方法都不会产生预期的结果/生成的方法代码

 protected void customerToHomeDTO(Customer customer, HomeDTO mappingTarget) {
        if ( customer == null ) {
            return;
        } …
Run Code Online (Sandbox Code Playgroud)

java null target mapstruct

20
推荐指数
1
解决办法
5万
查看次数

VScode Devcontainer 中的命令失败 docker-compose

我刚刚开始在一个已经存在的项目上使用 Docker(它运行到 Docker 容器中)。我没有太多的 Docker 背景 - 我只是通过 GUI 通过按“播放”按钮来使用它。

现在我有一个项目运行到容器中,但我在启动它时遇到了困难。

我收到此错误:

[2022-03-31T15:30:27.408Z] Error: Command failed: docker-compose -f c:\Users\Octavian\Desktop\django-analyzer\docker-compose.dev.yml config
[2022-03-31T15:30:27.408Z]     at Ru (c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js:209:813)
[2022-03-31T15:30:27.408Z]     at processTicksAndRejections (node:internal/process/task_queues:96:5)
[2022-03-31T15:30:27.408Z]     at async dR (c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js:181:643)
[2022-03-31T15:30:27.408Z]     at async hR (c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js:178:2075)
[2022-03-31T15:30:27.408Z]     at async RR (c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js:223:2195)
[2022-03-31T15:30:27.408Z]     at async Jw (c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js:223:3221)
[2022-03-31T15:30:27.409Z]     at async TR (c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js:223:13880)
[2022-03-31T15:30:27.409Z]     at async FR (c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js:223:13605)
[2022-03-31T15:30:27.417Z] Stop (3507 ms): Run: C:\Users\Octavian\AppData\Local\Programs\Microsoft VS Code\Code.exe c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js up --container-data-folder .vscode-server/data/Machine --container-system-data-folder /var/vscode-server --workspace-folder c:\Users\Octavian\Desktop\django-analyzer --workspace-mount-consistency cached --id-label vsch.local.folder=c:\Users\Octavian\Desktop\django-analyzer --id-label vsch.quality=stable …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose visual-studio-code vscode-devcontainer

16
推荐指数
2
解决办法
2万
查看次数

Mapstruct :在 @Mapping 的源参数中使用上下文

在 @Mapper 中使用多个参数时,@Context 参数似乎无法访问

public interface MyMapper {  
      @Mapping(target="target1", source="arg1.arg") //works
      @Mapping(target="target2", source="arg2") //works
      @Mapping(target="target3", source="arg2.arg") //works
      @Mapping(target="target2", source="context.arg") //NOT WORKING
      public MyTarget convert(Object arg1, Object arg2, @Context Object context);
      
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用并expression=""解决它,但我无法让它工作。

有什么建议么?

我看得出来我不是唯一一个有此愿望的人。 https://github.com/mapstruct/mapstruct/issues/1280

谢谢

mapstruct

15
推荐指数
3
解决办法
3万
查看次数

如何为 GCP 中的通配符主机名生成 Google 管理的证书?

我想将 Google 管理的证书用于通配符主机名\xe2\x80\x94,例如*.example.com.

\n

我知道我可以使用文档中的证书管理器中的证书管理器在 GCP 中执行此操作,但我找不到具体的示例。

\n

您能给我举一些例子吗?

\n

ssl-certificate google-cloud-platform

10
推荐指数
1
解决办法
9011
查看次数

GitHub Action 中 id-token 的权限范围是多少?

下面的例子是什么意思id-token,有什么用?

jobs:
  job_id:
    # Add "id-token" with the intended permissions.
    permissions:
      contents: 'read'
      id-token: 'write'

    steps:
    - id: 'auth'
      uses: 'google-github-actions/auth@v0'
      with:
        workload_identity_provider: 'projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider'
        service_account: 'my-service-account@my-project.iam.gserviceaccount.com'

    - name: 'Set up Cloud SDK'
      uses: 'google-github-actions/setup-gcloud@v0'

    - name: 'Use gcloud CLI'
      run: 'gcloud info'
Run Code Online (Sandbox Code Playgroud)

该示例来自setup-gcloud

我尝试查看doc1doc2。但是,我找不到任何有用的信息。

你能给我一些提示/建议吗?

github github-actions

6
推荐指数
1
解决办法
1万
查看次数

为什么我们需要在 GCP 中使用带有 Cloud Scheduler 的 Pub/Sub?

我正在阅读此https://cloud.google.com/scheduler/docs/tut-pub-sub 他们使用如下设置:

Cloud Scheduler -> PubSub -> Cloud Function-> external Service

如果我有一个每天调用一次服务的 cron 作业,我是否还需要在中间使用这个 pubsub ?

我知道 Cloud Scheduler 中有一个选项HTTP target type,我认为下面没有 PubSub 的设置就足够了。

Cloud Scheduler -> Cloud Function-> external Service

您能否给我一些建议,为什么我应该/不应该拥有 PubSub?

google-cloud-platform google-cloud-pubsub google-cloud-scheduler

5
推荐指数
1
解决办法
2079
查看次数

为什么在外部作用域中的变量内联等待与简单的等待赋值不同?

在我问这个问题之前,我确实研究了这个问题

我不明白为什么在下面的示例中,输出在run1和 中不同run2

"use strict";

function sleep(ms) {
  return new Promise(resolve =>
    setTimeout(() => {
      resolve(ms);
    }, ms)
  );
}

const seconds = [1000, 3000, 2000];

let output1 = 0;
let output2 = 0;

console.log("start");

(async function run1() {
  await Promise.all(
    seconds.map(async sec => {
      output1 = output1 + (await sleep(sec));
    })
  );
  console.log({ output1 });
})();

(async function run2() {
  await Promise.all(
    seconds.map(async sec => {
      const res = await sleep(sec);
      output2 = …
Run Code Online (Sandbox Code Playgroud)

javascript promise async-await

4
推荐指数
1
解决办法
97
查看次数

按字母顺序对数组进行排序,然后按大写字母排序,然后按小写字母排序

我想按字母顺序对数组进行排序,然后按大写字母排序,然后按小写字母排序。

const i = ["aA", "BA", "Aa", "aa", "Ba", "AA"];

//I tired so far.
i.sort((a, b) => a.localeCompare(b));

console.log(i);

//expected output
const o = ["AA", "Aa", "aA", "aa", "BA", "Ba"];
Run Code Online (Sandbox Code Playgroud)

javascript arrays

2
推荐指数
1
解决办法
955
查看次数

在wsl模式和cmd模式下运行docker命令有什么区别吗?

我在 Windows 11 和 Docker Desktop 中安装wsl并运行wsl2(使用 Ubuntu)来使用 docker。

我很好奇运行是否有什么区别,docker command例如docker build在 cmd 或 wsl 模式下运行?

wsl 模式意味着:我wsl在 cmd 中运行任何内容之前输入。

希望我的问题很清楚。

docker windows-subsystem-for-linux

2
推荐指数
1
解决办法
821
查看次数