Javaで2つのエンティティクラスを相互変換する方法は何ですか?
Javaでは、2つのエンティティクラス間の相互変換を実現するために以下の方法を使用できます:
- 手動変換:新しいエンティティクラスオブジェクトを作成し、ソースエンティティクラスオブジェクトの属性値を使用して新しいエンティティクラスオブジェクトの属性値を設定します。
public class EntityA {
private int id;
private String name;
// getters and setters
}
public class EntityB {
private int id;
private String name;
// getters and setters
}
// 将EntityA转换为EntityB
public EntityB convertToEntityB(EntityA entityA) {
EntityB entityB = new EntityB();
entityB.setId(entityA.getId());
entityB.setName(entityA.getName());
return entityB;
}
// 将EntityB转换为EntityA
public EntityA convertToEntityA(EntityB entityB) {
EntityA entityA = new EntityA();
entityA.setId(entityB.getId());
entityA.setName(entityB.getName());
return entityA;
}
- モデルマッパーライブラリなどのサードパーティライブラリを使用することができます。たとえば、ModelMapperライブラリを使用して、2つのエンティティクラス間のプロパティ値を自動的に変換できます。
// 添加ModelMapper依赖库
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>2.3.8</version>
</dependency>
// 使用ModelMapper进行转换
import org.modelmapper.ModelMapper;
public class EntityA {
private int id;
private String name;
// getters and setters
}
public class EntityB {
private int id;
private String name;
// getters and setters
}
// 将EntityA转换为EntityB
public EntityB convertToEntityB(EntityA entityA) {
ModelMapper modelMapper = new ModelMapper();
EntityB entityB = modelMapper.map(entityA, EntityB.class);
return entityB;
}
// 将EntityB转换为EntityA
public EntityA convertToEntityA(EntityB entityB) {
ModelMapper modelMapper = new ModelMapper();
EntityA entityA = modelMapper.map(entityB, EntityA.class);
return entityA;
}
上記の2つの方法は、具体的なニーズに応じて、エンティティクラス間の相互変換を実装するために1つを選択することができます。