java @PersistenceCreator注解有什么用

6qfn3psc  于 2022-11-20  发布在  Java
关注(0)|答案(1)|浏览(224)

我有一个User.java类,它是用户集合的模型。我想把其中的一些字段作为私有final,但是当我这样做的时候,它显示错误“final fields may not have been initialised”,但是由于我希望字段由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;
    }
}
7gcisfzg

7gcisfzg1#

Spring Data会自动尝试检测持久性实体的构造函数,以用于具体化该类型的对象,如果存在一个使用@PersistenceCreator注解的静态工厂方法,则使用该方法。

这是文件

相关问题