我有一個帖子類,它的工作類型,但有一個問題:主鍵不增加。JPA主鍵值始終爲0
@Entity
@Table(name="posts")
public class Post extends GenericModel{
@Id
@Column(name="post_id")
public int id;
@Column(name="post_situation")
public String situation;
@Column(name="post_date")
public Date date;
@Column(name="post_userid")
public int userid;
@OneToMany(mappedBy="post", cascade=CascadeType.ALL)
public List<Block> blocks;
public Post addBlock(String content, int position){
Block b = new Block(this, content, position);
b.save();
this.blocks.add(b);
this.save();
return this;
}
public Post(String situation, Date date){
this.situation = situation;
this.date = date;
this.userid = 2;
}
}
當我把它叫做第一次在一個空表,它工作正常,但第二次,我得到PersistenceException occured : org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
的POST_ID列始終爲0。任何想法如何解決這一問題?我有。安迪@Id註釋..
這是我在我的控制器:
Post p = new Post("Midden in het middenoosten.", new Date()).save();
任何想法什麼導致這個問題呢?
當它在查詢中保持打開狀態時,mysql不應該能夠自己生成主鍵嗎?有沒有辦法讓JPA在保存對象時忽略它,只用它來閱讀? – networkprofile 2011-06-07 01:31:58
我還沒有看過你的更新答案。我嘗試了沒有@GeneratedValue參數,現在它告訴我'java.sql.SQLException:字段'post_id'沒有默認值' – networkprofile 2011-06-07 01:36:39
是的,我的SQL可以做到這一點。您需要在創建表時指定該列。 – sudmong 2011-06-07 01:36:59