【发布时间】:2014-01-27 10:18:16
【问题描述】:
我正在为我的 java 企业应用程序使用 sql server 2008R2。 现在,我希望在持久化 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;
}
但是,当我持久化 bean 时,它会给出约束错误。 我的表创建查询如下:
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
【问题讨论】:
-
确切的错误是:javax.validation.ConstraintViolationException:在回调事件上执行自动 Bean 验证时违反了 Bean 验证约束:'prePersist'
-
身份类型应该与 ms sql 一起使用...之前我们有 oracle 11g,我们成功地使用了序列和序列生成器来满足我们的自动生成需求
标签: java sql-server-2008 jpa entity-bean