Hibernate は次の例外をスローしています。
Caused by: java.sql.SQLException: Field 'catVerb_id' doesn't have a default value
問題は AUTO_INCREMENT ステートメントを持たない私の PK にあると人々は言いますが、私のデータベースでこれを実行したことがわかり、問題は続いています。そこで、クラスとデータベースの実装を持ち込みました。
私の問題はテストクラスにあると思います...誰かがこれをテストする方法を教えてくれますか?
(はい、いくつかの単語はポルトガル語ですが、理解できます)。
カテゴリーVerbete
@Entity
@Table(name="verbete_categoria")
public class CategoriaVerbete implements Serializable{
private long id;
private String nome;
private String descricao;
private int serie;
private Set<Verbete> verbetes = new HashSet<Verbete>();
private Set<SignificadosVerbete> significados = new HashSet<SignificadosVerbete>();
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="catVerb_id")
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
...
@OneToMany(cascade = {CascadeType.ALL})
@JoinColumn(name="catVerb_id", nullable = true)
public Set<Verbete> getVerbetes() {
return verbetes;
}
public void setVerbetes(Set<Verbete> verbetes) {
this.verbetes = verbetes;
}
@OneToMany(cascade = {CascadeType.ALL})
@JoinColumn(name="catVerb_id", nullable = true)
public Set<SignificadosVerbete> getSignificados() {
return significados;
}
public void setSignificados(Set<SignificadosVerbete> significados) {
this.significados = significados;
}
}
詳細
@Entity
@Table(name="verbete")
public class Verbete implements Serializable{
...
@ManyToOne
@JoinColumn(name="catVerb_id", insertable = false, updatable = false)
public CategoriaVerbete getCategoria() {
return categoria;
}
public void setCategoria(CategoriaVerbete categoria) {
this.categoria = categoria;
}
...
}
重要事項Verbete
@Entity
@Table(name="verbete_significados")
public class SignificadosVerbete {
...
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="catVerb_id", insertable = false, updatable = false)
public CategoriaVerbete getCategoria() {
return categoria;
}
public void setCategoria(CategoriaVerbete categoria) {
this.categoria = categoria;
}
...
}
データベースで...
CREATE TABLE verbete_categoria (
catVerb_id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
catVerb_nome VARCHAR(100) UNIQUE,
catVerb_descricao MEDIUMTEXT,
catVerb_serie INT NOT NULL
);
どんな助けでも大歓迎です、ありがとう。
更新 - 問題は解決しました
うーん、勝利のサウンドトラックを期待していましたが、大丈夫です...
このリンクの内容に従いました:
そのリンクにあるものはHibernateのドキュメントでは推奨されていないことを読みましたが、推奨事項に従おうとしてエラーを処理するのに1週間かかりました。だから、これが他の人に役立つことを願っています。
そして、すべての答えに感謝します。