aws 的dynamodb 通过case class方式保存

来源:互联网 发布:课件制作软件director 编辑:程序博客网 时间:2024/06/05 19:04

首先说明下为什么要用case class,如果不用case class方式,通过普通的java bean也可以实现功能,但是在一些特定场合,比如想使用case class特性的时候就比较麻烦了。

普通的java bean通过dynamoDBMapper可以很简单的注入,只要添加对应的anotation即可,但是case class的anotation是无法直接在scal里识别出来,因为aws的dynamodb sdk是java 风格的, getters and setters 可识别已get或者is开头的字段,settter 可识别以set开头的字段,因此有两种方式,一种是构造java风格的,另外一种是在case class中使用对java bean的anotation提供对应的getter setter

方法一:

@DynamoDBTable(tableName = "mytable")class MyClass {  private var id : Integer = _  @DynamoDBHashKey  def getId() = id  def setId(_id: Integer) = id = _id}

方法二:

import annotation.meta.beanGetterimport beans.BeanPropertyimport com.amazonaws.services.dynamodbv2.datamodeling._@DynamoDBTable(tableName="mytable")case class MyClass(    @(DynamoDBHashKey @beanGetter)     @BeanProperty var id:String,       @BeanProperty var number:Integer) {  def this() = this(null, null)   }



原创粉丝点击