有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Jackson,哈希密码未映射

我有以下系列“玩家”

{
    "_id" : ObjectId("5426efb844ae829d1dcdaa6d"),
    "username" : "Foobar",
    "password" : "0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33",
    "gameIds" : [
            "5426f10544ae8502f731d8a0"
    ]
}

它有一个哈希密码。 当我尝试将til映射回我的播放器对象时,除了密码之外的所有内容都被映射。密码为空

这是我的映射播放器

@Data
@JsonRootName("player")
@NoArgsConstructor
public class Player {
    @JsonIgnore
    public static final String COL_NAME = "player";

    @ObjectId
    @Id
    private String id;

    /**Will use this token to authorize the user. This UUID should be cached once the user logs in */
    @JsonIgnore
    private UUID token = UUID.randomUUID();

    @NotBlank
    //Unique
    private String username;

    @Email
    private String email;

    @NotBlank
    private String password;

    /** Set of unique active games * */
    private Set<String> gameIds = new HashSet<>();
}

我是这样拯救玩家的:

    Player player = new Player();
    player.setUsername(username);
    player.getGameIds().add(pbfId);
    player.setPassword(DigestUtils.sha1Hex("foo"));
    playerCollection.insert(player);

像这样读:

DBCursor<Player> username = playerCollection.find(DBQuery.is("username", "Foobar"), new BasicDBObject());
Player player = username.next();

在这里,除密码外的所有内容都已正确映射


共 (1) 个答案

  1. # 1 楼答案

    我不知道发生了什么,但似乎我查询了错误的数据库。我不知道这是怎么发生的

    在与正确的数据库冲突之后,它工作得很好