Java Dropwizard休眠字段未填充
我有一个非常简单的用户实体,它从h2数据库填充用户名和密码字段 我似乎无法为布尔isAdmin添加更多的字段——我已经尝试了原语和对象布尔。SQL hibernate执行将被记录,当我运行时,它将返回给定用户的用户表中的所有字段,包括布尔值true。但布尔值仍然为空 你知道我怎样才能让这个领域人满为患吗Java Dropwizard休眠字段未填充,java,sql,hibernate,h2,dropwizard,Java,Sql,Hibernate,H2,Dropwizard,我有一个非常简单的用户实体,它从h2数据库填充用户名和密码字段 我似乎无法为布尔isAdmin添加更多的字段——我已经尝试了原语和对象布尔。SQL hibernate执行将被记录,当我运行时,它将返回给定用户的用户表中的所有字段,包括布尔值true。但布尔值仍然为空 你知道我怎样才能让这个领域人满为患吗 @Entity @Table(name = "users") @NamedQueries({ @NamedQuery( name = "eu.wansdyke.smaas
@Entity
@Table(name = "users")
@NamedQueries({
@NamedQuery(
name = "eu.wansdyke.smaash.core.User.findAll",
query = "SELECT u FROM User u"
),
@NamedQuery(
name = "eu.wansdyke.smaash.core.User.deleteByUsername",
query = "DELETE FROM User WHERE username = :username"
),
@NamedQuery(
name = "eu.wansdyke.smaash.core.User.findByUsername",
query = "SELECT u FROM User u WHERE u.username = :username"
)
})
@NamedNativeQueries({
@NamedNativeQuery(
name = "eu.wansdyke.smaash.core.User.setPassword",
query = "merge into users (username, password) key(username) values (:username, :password)"
)
})
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "username", nullable = false)
private String username;
@Column(name = "password", nullable = false)
private String password;
@Column(name = "isadmin", nullable = false)
private Boolean isAdmin;
public User() {
}
public User(String username) {
this.username = username;
}
public long getId() {
return id;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public Boolean isAdmin() {
return isAdmin;
}
}
纯OOP的一种方法是使用没有id的完整构造函数
public User(String username, String password, Boolean isAdmin) {
this.username = username;
this.password = password;
this.isAdmin = isAdmin;
}
现在,您可以在将字段保存到数据库之前对其进行初始化。明白了
我使用的dropwizard验证器代码是创建用户对象本身,而不是使用hibernate检索的对象。hibernate代码很好。字段值在数据库中,在读回它时,它没有被填充。它应该被这个构造函数填充。