![](/img/trans.png)
[英]Delete from JDBC Derby Database using the auto-generated key (INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1))
[英]Auto Increment Using @ Generated
我將sql server 2008R2用於我的Java企業應用程序。 現在,我希望在保留bean的同時,其ID列會自動更新。 我的實體bean是:
@Entity
@Table(name = "BANK_MASTER")
@XmlRootElement
public class BankMaster implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Basic(optional = false)
@NotNull
@Column(name = "BANK_ID")
private Long bankId;
@Size(max = 30)
@Column(name = "BANK_NAME")
private String bankName;
@Size(max = 25)
@Column(name = "IP_ADDRESS")
private String ipAddress;
@Size(max = 255)
@Column(name = "URL")
private String url;
@Size(max = 1)
@Column(name = "FORM_METHOD")
private String formMethod;
@Size(max = 1)
@Column(name = "SECURED")
private String secured;
@Column(name = "ACTIVEFLAG")
private Short activeflag;
@Column(name = "ENABLED")
private Short enabled;
@OneToMany(mappedBy = "bankId")
private Collection<BankBranchMaster> bankBranchMasterCollection;
@JoinColumn(name = "PARTNER_ID", referencedColumnName = "UA_ID")
@ManyToOne
private PartnerAccount partnerId;
}
但是,當我堅持豆它給出約束錯誤。 我的表創建查詢如下:
CREATE TABLE [dbo].[BANK_MASTER](
[BANK_ID] [numeric](10, 0) IDENTITY(105,1) NOT NULL,
[BANK_NAME] [varchar](30) NULL,
[IP_ADDRESS] [varchar](25) NULL,
[URL] [varchar](255) NULL,
[FORM_METHOD] [varchar](1) NULL,
[SECURED] [varchar](1) NULL,
[PARTNER_ID] [numeric](10, 0) NULL,
[ACTIVEFLAG] [numeric](1, 0) NULL,
[ENABLED] [numeric](1, 0) NULL
您已將@NotNull
添加到id
屬性。 因此,這意味着JPA將在持久化之前檢查該id是否為null。 但是id為null,因為它將在數據庫之后生成。 因此,NotNull注釋與它由身份自動生成的事實直接矛盾。
只需從id
刪除@NotNull
批注。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.