2016-06-09 5 views
0

У меня есть класс с именем Meeting, который содержит некоторые поля, один из которых - timeStamp, и его тип длинный. Я хочу хранить собрания в MongoDb, но я хочу, чтобы этот timeStamp хранился как Date. Есть ли способ указать Morphia для хранения его с использованием другого типа с помощью функции mapper/convertor?Возможно ли изменить тип поля при сохранении объекта в MongoDB с помощью Morphia?

@Entity(noClassnameStored = true) 
public class Meeting { 

    private String entity1; 
    private String entity2; 
    private long timeStamp; 

    public Meeting(){ 

    }; 

    public Meeting(String entity1, String entity2, long timeStamp) { 

     this.entity1 = entity1; 
     this.entity2 = entity2; 
     this.timeStamp = timeStamp; 
    } 

    public String getEntity1() { 
     return entity1; 
    } 

    public String getEntity2() { 
     return entity2; 
    } 

    public long getTimeStamp() { 
     return timeStamp; 
    } 
} 

ответ

1

Вы можете использовать @PrePersist и @PostLoad принуждать типы. См. here для получения дополнительной информации.

+0

Спасибо, но это не помогает, так как я не хочу добавлять к этому объекту другое поле. Причина, по которой я изначально сохранил timeStamp как длинный, а не как Date, должен был уменьшить его размер. – Mork

+0

Вы не добавили бы еще одно поле, вы бы изменили поле в «DBObject», чтобы он соответствовал типу, который вы хотите в базе данных. Я не уверен, что вы сэкономите много места, так как Даты также имеют длину 64 бит. Профиль наверняка. – evanchooly