Beanmapper is a Java library for mapping dissimilar Java classes with similar names.

Programming language: Java
Tags: Bean Mapping     Java     Annotations    
Latest version: v3.1.0

Beanmapper alternatives and similar libraries

Based on the "Bean Mapping" category.
Alternatively, view Beanmapper alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Beanmapper or a related project?

Add another 'Bean Mapping' Library


Build Status Codacy Badge BCH compliance codecov Maven Central Javadocs Apache 2


Beanmapper is a Java library for mapping dissimilar Java classes with similar names. The use cases for Beanmapper are the following:

  • mapping from forms to entities, because:
    • for security reasons you want to accept only a limited number of fields as input
    • the form fields are simplified to support frontend processing
  • mapping from entities to results, because:
    • you want to simplify the result for frontend processing
    • you want to expose a limited number of fields for security reasons

Maven dependency

In order to use Beanmapper in your project, simply add the following Maven dependency:


Getting started

You want to map two dissimilar classes with no hierarchical relation (save java.lang.Object), but with a fairly similar naming schema for the fields.

[Basic use case for Beanmapper](docs/images/beanmapper-usecase.png)

public class SourceClass {
   public Long id;
   public String name;
   public LocalDate date;
public class TargetClass {
   public String name;
   public LocalDate date;
BeanMapper beanMapper = new BeanMapper();
SourceClass source = new SourceClass();
source.id = 42L;
source.name = "Henk";
source.date = LocalDate.of(2015, 4, 1));
TargetClass target = beanMapper.map(source, TargetClass.class);

What's more?

The library can help you with the following situations:

  • nested dissimilar classes
  • ignoring parts
  • mapping to fields with other names, even if nested
  • settings defaults if no value is found
  • unwrapping class layers in order to flatten the structure
  • works directly on the bean, no getters/setters required
  • supports a combination of automated and manual processing
  • adding conversion modules for data types

What Beanmapper is not for

Beanmapper is not a library for deep-copying classes. Whenever Beanmapper can get away with a shallow copy, it will do so. Deep-copying is reserved for dissimilar classes.

Want to know more?

Find the rest of the documentation on beanmapper.io.


Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at


Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

*Note that all licence references and agreements mentioned in the Beanmapper README section above are relevant to that project's source code only.