标签: ektorp

如何在Jackson中编写自定义序列化器和解串器?

我有一个有十几个属性的课程.对于原始类型的大多数属性,我希望使用默认的BeanSerializer和BeanDeserializer或其他任何东西来减少我需要编写的繁琐代码.对于自定义和数组类型的其他属性,我想做一些自定义序列化器/反序列化器.请注意,我无法更改基础JSON字符串.但我完全可以访问android代码.我使用Jackson 1.7.9/Ektorp 1.1.1.

我应该继承BeanDeserializer吗?我遇到了麻烦.它期望一个没有参数的默认构造函数,但我不知道如何调用超级构造函数.

class MyType{
    // a dozen properties with primitive types String, Int, BigDecimal
    public Stirng getName();
    public void setName(String name);

    // properties that require custom deserializer/serializer
    public CustomType getCustom();
    public void setCustom(CustomType ct);
}

class MyDeserializer extends BeanDeserialzer{
    // an exception is throw if I don't have default constructor.
    // But BeanDeserializer doesn't have a default constructor
    // It has the below constructor that I don't know how to fill in the parameters
    public MyDeserializer(AnnotatedClass forClass, JavaType …
Run Code Online (Sandbox Code Playgroud)

serialization json jackson deserialization ektorp

7
推荐指数
1
解决办法
9365
查看次数

检索泛型类的.class属性

我试图用构造函数(来自Ektorp库)扩展以下类:

public class CouchDbRepositorySupport<T extends CouchDbDocument> implements GenericRepository<T> {

...

protected CouchDbRepositorySupport(Class<T> type, CouchDbConnector db) {
...

}
Run Code Online (Sandbox Code Playgroud)

这是我的实现:

public class OrderRepository extends CouchDbRepositorySupport<Order<MenuItem>> {

    public OrderRepository(CouchDbConnector db) {
        super(Order<MenuItem>.class, db);
Run Code Online (Sandbox Code Playgroud)

问题出在Order<MenuItem>.class零件上.Java编译器告诉我:

 Syntax error on token ">", void expected after this 
Run Code Online (Sandbox Code Playgroud)

我试着用(Order<MenuItem>).class,Order.classnew Order<MenuItem>().getClass()没有更好的运气.

我该怎么做才能检索泛型类的.class属性?

java generics ektorp

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

对 CouchDB 的 Java 数据访问:ORM 还是 REST?

我正在开发一个应用程序作为事件服务总线,用于集成各种遗留组件......该应用程序利用数据存储来审核系统之间发送的所有事件和请求,以及存储有关总线订阅端点的元数据.. 。等等。我想使用 CouchDB 作为数据存储,因为它已经内置了我的应用程序的许多要求(REST API、复制、版本控制元数据文档等)。现在这是我的应用程序堆栈的样子:

  [spring-integration filters/routers/service activators]
  [service layer]
  [dao layer]
  [database]
Run Code Online (Sandbox Code Playgroud)

由于数据库是 CouchDB,我猜 DAO 层将是 Ektorp Java 库或简单的 REST 客户端。不过,这是我的问题:用 Ektorp 构建 DAO 层是不是有点多余?我的意思是,为什么不直接在服务层中使用 RestTemplate 来与 CouchDB 中的视图和设计文档对话并节省一些编码工作?

我错过了什么吗?

谢谢,

java couchdb ektorp

3
推荐指数
1
解决办法
1483
查看次数

如何在不丢失现有附件的情况下更新couchdb文档

我想更新已经有附件的couchdb文档中的字段.如果我使用当前版本更新新字段,则会删除附件.有没有办法让我更新字段而不会丢失附件?我正在使用Ektorp API来更新文档.

关心Sunil.

couchdb attachment ektorp

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