1

私はSpringと休止状態が初めてで、トランザクションデータを永続化しようとすると上記のエラーが発生しました。この問題を解決してください ここに私のエンティティがあります:

 @Entity @NamedQuery(name="Employee.findAll", query="SELECT e FROM    Employee e") 

    public class Employee implements Serializable{      

    private    static final long serialVersionUID = 1L;     
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)   
    private int id;
    private String city;    
    private String civil;
    @Temporal(TemporalType.DATE)    
    @Column(name="dob", length=11)
    private Date dob;   
    private String email;   
    private int epf;    
    private String fname;   
    private String gender;  
    private int landtp;     
    private String lname;   
    @Temporal(TemporalType.DATE)
    @Column(name="salaryincrement", length=11)  
   //bi-directional many-to-one association to    Designation   
   @ManyToOne(fetch = FetchType.LAZY)
   @JoinColumn(name="designation_id", nullable=false)   
   private    Designation designation;  

   public Employee() {  }



    @Entity
    @NamedQuery(name="Designation.findAll", query="SELECT d FROM Designation d")
    public class Designation implements Serializable{ 
      private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int id;

    private String type;

    //bi-directional many-to-one association to Employee
    @OneToMany(mappedBy="designation")//, cascade=CascadeType.ALL
    private List<Employee> employees;

    public Designation() {
            }

これは私のエンティティクラスです。エンティティにはゲッターとセッターがあります

4

2 に答える 2

0

Id としてプリミティブ型を使用できるかどうかはわかりませんint-おそらく使用する必要がありますInteger-intデフォルトのゼロ値を持ち、nullにすることはできません。新しいレコードは、一時的なものではなく、Id ZERO を持つ切り離されたエンティティと見なすことができます1。

同じ間違いがDesignationクラスにあります。

休止状態の主キーのプリミティブまたはラッパーを参照してください

于 2013-09-18T13:03:30.840 に答える
0

designationが設定されてnullable = falseいます。ただしemployees、変数は で初期化されませんDesignation。したがって、次のように初期化する必要があります

@OneToMany(mappedBy="designation")//, cascade=CascadeType.ALL
private List<Employee> employees = new LinkedList<>();
于 2013-09-18T12:57:29.343 に答える