标签: mapper

iBatis多参数映射器方法

假设我有一个getUser带有两个参数的查询- userName和password.我想要一个如下所示的mapper方法:

public UserBean getUser(String userName, String password);
Run Code Online (Sandbox Code Playgroud)

有什么方法可以实现这样的目标吗?或者也许我应该传递我的mapper方法参数图(以及我的xml映射器中的一些parameterMap)?

public UserBean getUser(Map<String, Object> paramMap);
Run Code Online (Sandbox Code Playgroud)

我期待着一些提示和解释.

ibatis mapper

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

Ant:将相同的文件集复制到多个位置 - 续

我的问题是继续这个线程: Ant:将同一个文件集复制到多个地方

我是mappers的新手.有人(carej?)可以分享使用映射器执行此操作的示例吗?这是我想要的:

parent_folder
    |----child1_folder
    |         |----files
    |                |----config.file
    |                |----data.txt
    |----child2_folder
    |----child3_folder
    .
    .
    .
    |----childn_folder

我没有选择使用ant-contrib(抱歉......蚂蚁位置或任何taskdesf不在我的控制之下).所以我不知道如何循环不确定数量的文件夹.

限制我:

  1. 我只知道child1_folder的名字(不知道其他孩子的名字)
  2. 其他孩子的数量不确定
  3. 我应该files在每个子文件夹下创建文件夹(通过另一个任务,如果不是复制).

这是我正在尝试的(目前正在尝试单个文件,一旦开始工作,将使用其他映射器扩展):

<copy todir="/tmp/parent_folder" verbose="true">
    <fileset dir="/tmp/parent_folder">
        <include name="*/files/config.file"/>
    </fileset>
    <mapper type="glob" from="*/files/config.file" to="*/files/config.file"/>
</copy>
Run Code Online (Sandbox Code Playgroud)

口口声声说skipped - don't know how to handle it后面No sources found..

在此先感谢Parag Doke

另一个(可能是?)相关问题: 使用mapper和fileset将文件复制到不同的子目录中?

ant copy mapper

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

具有相对文件名的Pathconvert

在文件夹src中,我有一组带有java源代码的子文件夹:

/a/A.java

/a/b/B.java

/a/b/c/C.java

我需要一个具有以下值的属性:

src/a/A.java,src/a/b/B.java,src/a/b/c/C.java
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

<pathconvert property="list-of-files">
  <globmapper from="*" to="src/*"/>
  <fileset dir=${src-folder}/>
</pathconvert>
Run Code Online (Sandbox Code Playgroud)

但我最终在我的财产上有以下价值:

src/full/path/to/folder_a/a/A.java,src/full/path/to/folder_a/a/b/B.java,src/full/path/to/folder_a/a/b/c/C.java
Run Code Online (Sandbox Code Playgroud)

我怎样才能完成我想要的?任何输入都表示赞赏!

ant mapper

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

Orika没有列表中的null元素的映射

我有以下课程:

public class A{
    List<AA> aaList;

    public A(List<AA> aaList){
        this.aaList = aaList;
    }

    //getters and setters + default constructor

    public class AA {
        String aaString;
        public AA(String aaString){
            this.aaString = aaString;
        }

        //getters and setters + default constructor
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望有两个同类的对象,让我们说:

A a = new A(Arrays.asList(new A.AA(null)));
A a2 = new A(Arrays.asList(new A.AA("test")));
Run Code Online (Sandbox Code Playgroud)

当我映射a到时a2,a2应该保留,test因为a有一个null.

我该如何配置Orika

我尝试过类似的东西:

mapperFactory.classMap(A.AA.class, A.AA.class)
            .mapNulls(false)
            .byDefault()
            .register();

    mapperFactory.classMap(A.class, A.class)
            .mapNulls(false)
            .customize(new CustomMapper<A, …
Run Code Online (Sandbox Code Playgroud)

java null mapper orika

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

Map 类型的表达式需要未经检查的转换

我的代码中有这个:

ObjectMapper oMapper = new ObjectMapper();
Map<String, Object> objectMap = oMapper.convertValue(test, Map.class);
Run Code Online (Sandbox Code Playgroud)

我收到以下警告:

Type safety: The expression of type Map needs unchecked conversion to conform to Map<String,Object>
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

解决方案:

import com.fasterxml.jackson.core.type.TypeReference;

ObjectMapper oMapper = new ObjectMapper();
Map<String, Object> objectMap = oMapper.convertValue(prueba, new TypeReference<Map<String, Object>>(){});
Run Code Online (Sandbox Code Playgroud)

spring mapper spring-boot objectmapper

6
推荐指数
0
解决办法
2796
查看次数

映射器是适配器模式的一个版本

我一直试图让我的头围绕适配器模式,在所有模式中,我最难想象它的用途.

我想我明白了实现了什么,对我而言,它是将对象转换为另一个接口,以便客户端可以使用它.

在示例中,我看到它们有意义,但我觉得我可以使用一个映射器实现相同的功能,该映射器接受一个对象并将其属性(也可能应用一些逻辑)映射到所需的对象类型,因此使用真实对象.

是否存在差异,或者它们的名称是否相同?

java adapter mapper

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

Jackson Mapper - 如何在空值或空值上失败

我们在代码中使用 Jackson JSON 映射器来反序列化一些配置对象。当特定字段丢失或为空时,我们希望 Jackson 在反序列化时失败

Jackson 支持这种行为的唯一功能是原语:

final DeserializationConfig.Feature failOnPremitives = DeserializationConfig.Feature.FAIL_ON_NULL_FOR_PRIMITIVES;
Run Code Online (Sandbox Code Playgroud)

问题是有问题的字段主要是字符串

任何帮助都受到高度赞赏

java jackson mapper deserialization

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

如何修复映射器函数返回空值。”Java/RxJava2 Null 中的错误?

我对 RxJava2 和流(Observable 和 Observer)有一些问题实际上,我的流返回一个错误

The mapper function returned a null value.
io.reactivex.internal.functions.ObjectHelper.requireNonNull(ObjectHelper.java:39)
io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:57)
retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)
retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)
retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:47)
Run Code Online (Sandbox Code Playgroud)

我的 logcat 不显示代码中断的位置。


 public static Observable<List<Business.Response.Doc>> streamArticles_Business() {
        NYT_TopStories_services nyt_services = NYT_TopStories_services.retrofit.create(NYT_TopStories_services.class);
        return nyt_services.getArticles_Business()
                .map(Business.Response::getDocs)
                .filter(str -> str != null)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .timeout(20, TimeUnit.SECONDS);
    }

Run Code Online (Sandbox Code Playgroud)

和我的改造得到

 @GET("search/v2/articlesearch.json?q=business&api-key=" + apiKey)
    Observable<Business.Response> getArticles_Business();


    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("https://api.nytimes.com/svc/")
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .build();


Run Code Online (Sandbox Code Playgroud)

你有办法解决这个问题吗?

null stream mapper rx-java2

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

无法使用 mapper.readValue 将有效的 UUID 字符串转换为 UUID

我有一个字符串格式的有效 UUID

7a041f81-1214-41e5-bb58-9a46b2ca08d4
Run Code Online (Sandbox Code Playgroud)

但是当我使用 aObjectMapper将其转换为 UUID 时,我不断收到此错误。

    UUID uuid = mapper.readValue("7a041f81-1214-41e5-bb58-9a46b2ca08d4",UUID.class);
Run Code Online (Sandbox Code Playgroud)

错误:

com.fasterxml.jackson.core.JsonParseException:意外的字符('a'(代码 97)):预期的空格分隔根级别值 [来源:(字符串)“7a041f81-1214-41e5-bb58-9a46b2ca08d4”;行:1,列:3] 在 com.xxxx.yyyyy.zzzzz.Test.callTest(BmcEventListenerTest.java:22

如何将字符串转换为 UUID?为什么我不断收到此错误?

java uuid mapper

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

MapStruct:如何将属性从“java.lang.Object”映射到“java.lang.String”

MapStrut 新手;对象到字符串错误:

[错误] /util/LicenseMapper.java:[11,23] 无法将属性“java.lang.Object license.customFields[].value”映射到“java.lang.String license.customFields[].value”。考虑声明/实现一个映射方法:“java.lang.String map(java.lang.Object value)”。

代码:

@Mapper
public interface LicenseMapper {
    List<License> jsonToDao(List<com.integrator.vo.license.License> source);
}
Run Code Online (Sandbox Code Playgroud)

vo.license 包含具有以下属性的 CustomFields 列表

@SerializedName("Value")
@Expose
private Object value;
Run Code Online (Sandbox Code Playgroud)

Json 将一个字段作为对象输入,因为它可能是布尔值、字符串或任何其他内容,因此我已将其映射到对象中。而在 dao 层中,String 中有相同的字段。(在自定义映射器中,我只是 String.valueof 但不确定如何使用 Mapstrut 实现它)

谁能告诉我 LicenseMapper 中需要进行哪些设置才能将对象转换为字符串?

许可证结构 - 来源和目的地:

.
.
private String notes;
private Boolean isIncomplete;
private List<CustomField> customFields = null;
private List<Allocation> allocations = null;
Run Code Online (Sandbox Code Playgroud)

源中的自定义字段结构(删除了 gson 注释):

.
.
private String name;
private Object dataType;
private Object value;
Run Code Online (Sandbox Code Playgroud)

目的地中的自定义字段结构

private String name;
private …
Run Code Online (Sandbox Code Playgroud)

java dto mapper gson mapstruct

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