1

私はHibernate 3.3に取り組んでいます。最近、私は基準を使い始めました。私の注釈クラスは次のとおりです..

@Entity
@Table(name = "EMAG_ADMINLOGIN", schema = "EMAG_USER")
public class Adminlogin implements java.io.Serializable {

private String username;
private String password;
private String fullname;
private long isenabled;

@Id
@Column(name = "USERNAME", unique = true, nullable = false, length = 40)
public String getUsername() {
    return this.username;
}

public void setUsername(String username) {
    this.username = username;
}
@Column(name = "PASSWORD", length = 40)
public String getPassword() {
    return this.password;
}

public void setPassword(String password) {
    this.password = password;
}

@Column(name = "FULLNAME", nullable = false, length = 100)
public String getFullname() {
    return this.fullname;
}

public void setFullname(String fullname) {
    this.fullname = fullname;
}
@Column(name = "ISENABLED", precision = 0)
public long getIsenabled() {
    return this.isenabled;
}

public void setIsenabled(long isenabled) {
    this.isenabled = isenabled;
}
}

そして、私の基準コードは次のとおりです

Criteria criteria=session.createCriteria(Adminlogin.class);
criteria=criteria.add(Restrictions.eq("username", "admin"));
List list=criteria.list();

このコードは、行の isEnabled 値が null の場合にエラーを示しています。null 値をプリミティブ データ型 long に変換できないことはわかっています。したがって、任意のプロパティの null 値をスキップする他の方法があることを知りたいです。(私は 1 つのテーブル クラスを投稿しましたが、同じ種類のクラス マッピングを持つテーブルが他にもあります)

4

2 に答える 2

1

NotFoundアノテーションを使用してみてください:問題が解決される可能性があります

  @NotFound(action = NotFoundAction.IGNORE)
于 2013-02-23T18:21:27.497 に答える
1

「isenabled」のタイプを「Long」に変更するか、要件に基づいてデータベース スキーマの列にデフォルト値を定義します。

于 2013-02-23T20:54:32.233 に答える