我正在使用objectify 4.0.1的google數據存儲來存儲消息。每條消息都有一個附加評論列表。爲什麼objectify會返回不一致的數據?
消息ID 5708313257836544有16評論。在10:34:08添加了第17條評論。 12:01:46的GET顯示消息有17條評論,12:02的另一條顯示它有16條,而12:04的下一條返回17。沒有評論已被刪除。
的代碼如下:
@Entity
public class Message {
@Id private Long id;
private List<Comment> comments;
//getters and setters
//equals and hashcode over-ridden using id
}
@Embed
public class Comment {
private String message;
private Date date;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Date getDate() {
return date;
}
public int hashCode() {
return date.hashCode() * message.hashCode();
}
public boolean equals(Object obj) {
if (obj==this)
return true;
if (!(obj instanceof Comment))
return false;
Comment other = (Comment) obj;
return other.getMessage().equals(message) && other.getDate().equals(date);
}
我還沒有啓用高速緩存這些對象與@Cache註解。
爲什麼會發生這種不一致,我該如何預防呢?
你還沒有顯示任何獲取它的代碼。如果您的提取代碼是查詢,它將顯示最終的一致性。如果它是通過鑰匙,你會看到別的東西 - 也許你沒有安裝ObjectifyFilter? – stickfigure 2015-02-06 17:28:58