Tag: mixins

使用Jackson序列化类型集合时出错

我正在尝试使用混音序列化一个集合,但jackson不会保存类型信息。 这是一个基本测试,说明了会发生什么: public class CollectionSerializationTest { interface Common extends Serializable { } class A implements Common { private static final long serialVersionUID = 1L; } @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = “type”) @JsonSubTypes({ @JsonSubTypes.Type(value = A.class, name = “CODE”) }) class AMixIn { } @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = “type”) […]

Jackson使用mixins以动态不同的名称序列化属性

我使用不同的NoSQL数据库,根据数据库,我需要将“id”命名为不同。 例如在OrientDB ,id被命名为“@rid” @JsonProperty(“@rid”) private String id; 对于MongoDB,id被命名为“_id” @JsonProperty(“@_id”) private String id; 我不知道现代数据库开发人员有什么问题,不只是命名id字段“id”^^。 但现在我有一个问题。 如何在某些情况下动态序列化/反序列化id字段为“@rid”,在另一种情况下为“_id”? 编辑: 基于rmullers建议我尝试使用mixins。 所以我举个例子: public interface IdMixins { } public interface MongoIdMixIn extends IdMixins { @JsonProperty(“_id”) String getId(); @JsonProperty(“_id”) void setId(String id); } public interface OrientIdMixIn extends IdMixins{ @JsonProperty(“@rid”) String getId(); @JsonProperty(“@rid”) void setId(String id); } 其中IdMixins是一个完全空的接口,用于获得更多的控制,哪些接口可以传递给映射器。 然后是一堂课: @JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY, property=”@javaClass”) […]

java traits还是mixins模式?

有没有办法在java中模拟mixins或traits? 基本上,我需要一种方法来进行多重inheritance,这样我就可以将常用的业务逻辑添加到几个类中