我正在尝试使用 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) 我刚刚开始在一个已经存在的项目上使用 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
在 @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
谢谢
我想将 Google 管理的证书用于通配符主机名\xe2\x80\x94,例如*.example.com
.
我知道我可以使用文档中的证书管理器中的证书管理器在 GCP 中执行此操作,但我找不到具体的示例。
\n您能给我举一些例子吗?
\n下面的例子是什么意思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
我尝试查看doc1和doc2。但是,我找不到任何有用的信息。
你能给我一些提示/建议吗?
我正在阅读此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
在我问这个问题之前,我确实研究了这个问题。
我不明白为什么在下面的示例中,输出在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)我想按字母顺序对数组进行排序,然后按大写字母排序,然后按小写字母排序。
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)
我在 Windows 11 和 Docker Desktop 中安装wsl
并运行wsl2
(使用 Ubuntu)来使用 docker。
我很好奇运行是否有什么区别,docker command
例如docker build
在 cmd 或 wsl 模式下运行?
wsl 模式意味着:我wsl
在 cmd 中运行任何内容之前输入。
希望我的问题很清楚。
docker ×2
javascript ×2
mapstruct ×2
arrays ×1
async-await ×1
github ×1
java ×1
null ×1
promise ×1
target ×1