通过排除一些字段为Java中的嵌套DTO对象生成散列,以便在DB中持久化

9njqaruj  于 2023-03-16  发布在  Java
关注(0)|答案(1)|浏览(98)

Java库:
我计划存储嵌套DTO对象的散列,其中我需要包含子类/嵌套类中的字段。是否有任何库可以返回散列,并且我可以通过在字段上添加注解来排除字段?
我不打算在比较中使用它,但出于某种目的,我需要在DB中持久化。
例如,如果我有

Class Car {
    @ExcludeField
    int id

    int modelYear

    String color

    TyreClass tyre;
}
Class TyreClass {
   
   @ExcludeField
   int id;

   @ExcludeField
   int version;

   float radius

   String colour

   double width
}

在这种情况下,如果我可以有任何库,这将允许我得到哈希汽车(包括tyreClass)?我需要Java解决方案/库
预期返回整数或字符串有值。

oalqel3c

oalqel3c1#

有一个很棒的库Lombok,它提供了只标记要包含(或排除)到散列代码中的特定字段的功能。
使用EqualsAndHashCode注解标记所需的类,并添加EqualsAndHashCode。将注解排除到期望从散列代码中排除的字段将完成这项工作。
有了它,您的类可能看起来像:

@EqualsAndHashCode
public class Car {

    @EqualsAndHashCode.Exclude
    int id

    int modelYear

    String color

    TyreClass tyre;
}

以及

@EqualsAndHashCode
Class TyreClass {
   
   @EqualsAndHashCode.Exclude
   int id;

   @EqualsAndHashCode.Exclude
   int version;

   float radius

   String colour

   double width
}

相关问题