我有一个 User.java 类,它是 User 集合的模型。 我想将其中的一些字段设置为私有最终字段,但是当我这样做时,它显示错误“最终字段可能尚未初始化”,但由于我期望这些字段由 UserRepository 初始化,所以我无法初始化这些字段在申报时。
我尝试创建一个包含所有字段的构造函数,它可以工作(不使用 @PersistenceCreator),然后还有一个 @PersistenceCreator 注释,我不知道其用途,根据文档,它声明带注释的构造函数为默认构造函数,但有没有进一步的解释。 请注意,构造函数可以使用或不使用注释。
请解释: @PersistenceCreator注解有什么用。
@Document
public class User {
@Id
private final int id;
@Field("user_name")
private final String userName;
private final String password;
private final boolean active;
private final String roles;
@Field("from_phone_number_id")
private final String fromPhoneNumberId;
@Field("access_token")
private final String accessToken;
@PersistenceCreator
public User(int id, String userName, String password, boolean active, String roles, String fromPhoneNumberId,
String accessToken) {
this.id = id;
this.userName = userName;
this.password = password;
this.active = active;
this.roles = roles;
this.fromPhoneNumberId = fromPhoneNumberId;
this.accessToken = accessToken;
}
}