Java Dropwizard休眠字段未填充

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

我有一个非常简单的用户实体,它从h2数据库填充用户名和密码字段

我似乎无法为布尔isAdmin添加更多的字段——我已经尝试了原语和对象布尔。SQL hibernate执行将被记录,当我运行时,它将返回给定用户的用户表中的所有字段,包括布尔值true。但布尔值仍然为空

你知道我怎样才能让这个领域人满为患吗

@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代码很好。

字段值在数据库中,在读回它时,它没有被填充。它应该被这个构造函数填充。