[英]Issue loading model data from YAML file
我正在尝试从Yaml文件加载模型。 内容是:
#test data
User(marchaos):
username: marchaos
email: marchaos@email.com
passwordHash: cf6dd541822b1b3d2d23c92adda75211
该模型如下所示。
@Entity
public class User extends Model
{
@Unique
@Required
private final String username;
@Email
@Required
private final String email;
@Required
private final String passwordHash;
public User(String username, String email, String password)
{
this.username = username;
this.email = email;
//TODO: salt
this.passwordHash = Codec.hexMD5(password);
}
public String getUsername()
{
return username;
}
public String getEmail()
{
return email;
}
}
YAML文件加载在Bootstrap类中:
Fixtures.loadModels("User.yml");
用户看起来像已创建,但所有字段均为空:
System.out.println(((User) User.all().first()).getUsername());
// prints null
知道为什么用户没有数据吗? 如果我使用构造函数创建用户,则该用户数据存在。
确保您的yaml文件中仅使用空格而没有选项卡 。
您还需要一个公共的无参数构造函数 。 不允许将属性设置为最终属性 ,如果将它们设为私有,则必须为其提供设置器。
附带说明:您不应使用md5哈希密码。 这是一个安全风险(彩虹表)
我认为问题在于您的User属性被标记为final和private。 从播放文档中,您可以阅读:
习惯上,将类的任何公共,非静态,非最终字段视为属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.