在数据存储区中以人类可读的形式保存Objectify的结果

时间:2017-01-20 18:47:29

标签: google-app-engine objectify datastore

我正在尝试创建一个Eventlog(示例中为ORMSLOG),它在Datastore中以人类可读的形式保存事件。

执行此操作应编写可读事件:

List<Device> devices = ofy().transactionless().load().type(Device.class).list(); ORMSLOG.log(ORMSLOG.GET_ALL_DEVICES, "Devices found: " + String.valueOf(devices));

ORMSLOG是一个简单的类。

public class ORMSLOG {
    public final static String CREATE_DEVICE = "Create Device";
    public final static String GET_ALL_DEVICES = "Get all Devices";

    public static void log(final String event, final String data) {
        ofy().save().entity(new Event(event, data)).now();
    }
}

但是数据存储中保存的数据不可读,如下所示:

ORMSLOG data

我需要将对象的引用转换为人类可读的文本。

1 个答案:

答案 0 :(得分:0)

您只是记录对象的String表示形式,这是通过调用toString方法完成的。由于您没有覆盖toString类中的Device方法,因此您将获得指向对象的指针。如果覆盖Device类中的toString方法以返回要返回的状态,则会看到更好的结果。大多数IDE(例如Eclipse)都可以选择为您生成toString方法。