org.hibernate.AssertionFailure: null id in
com.example.helloworld.entities.Employee entry (don't flush the Session
after an exception occurs)
私はID値を渡すと、それが正常に動作しますが、私が使用しているが、 @GeneratedValue(strategy = GenerationType.IDENTITY)
'id'
は自動的に生成されません。どんな助けもありがとう! DBスキーマとエンティティコードの詳細は次のとおりです。
DBエンジン:Postgresの
ORM:
表名従業員:
Column Name | Type | Length | Not Null | Default
name | Varchar | 64 | true | NULL
id | int8 | 19 | true |nextval(Employee_id::regclass)
company_id | int8 |19 | true | NULL
表#Company
休止私は2つのテーブルを次のようしています
area | varchar |64 | true | NULL上記の表のための
エンティティのJavaクラス:
@Entity
@Table(name = "Employee")
public class Employee {
public Employee() {super();}
@Id
@Column(name = "id", columnDefinition = "serial")
@GeneratedValue(strategy = GenerationType.IDENTITY)
@NotNull
private long id;
@NotNull
@Column(name = "company_id")
private long company_id;
@NotNull
@Column(name = "name")
private String name;
@ManyToOne
private Company company;
/**
setters and getters
**/
}
@Entity
@Table(name = "Company")
public class Company {
public Company() {super();}
@Id
@Column(name = "id", columnDefinition = "serial")
@GeneratedValue(strategy = GenerationType.IDENTITY)
@NotNull
private long id;
@NotNull
@Column(name = "area")
private String area;
@NotNull
@Column(name = "cname")
private String cname;
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="company_id")
private Set<Employee> employees;
/**
setters and getters
**/
}
エラーに差。同じエラーが発生しました:
–GeneratedValueも変更するのを忘れました。私は自分の投稿を編集しました。 –
ありがとう、@ウェズリーは働いた!それは10からIDの生成を開始しましたが、なぜ私はそれについて次のようにいくつかの質問があります: 1)一意性に関して問題が生じないでしょうか? 2)いくつかのIDの制限を生成できますか? 3)私の場合、なぜ「アイデンティティ生成」が機能しなかったのですか?これは、外部参照のない1つのテーブルで動作します。 –