【发布时间】:2021-08-27 18:29:57
【问题描述】:
我正在使用带有本地数据库的 Netbeans。在服务-> 表或 SQL Managament Studio 中添加(插入)执行命令后,一切都很好。 使用“set identity_insert dbo.table1 on”后的工作。
但是当我运行项目时(单击绿色的开始三角形按钮),我只能看到数据(从 table1 中选择 *)或删除。 添加(插入)生成此问题:
org.eclipse.persistence.exceptions.DatabaseException 内部异常:com.microsoft.sqlserver.jdbc.SQLServerException:当 IDENTITY_INSERT 设置为 OFF 时,无法在表“table1”中插入标识列的显式值。 错误代码:544
这是负责添加到基础的代码:
Project p = new Project();
ValuePro vp = new ValuePro(Integer.parseInt(idField.getText()),titleField.getText(), descField.getText());
p.save(vp);
EntityManagerFactory emf = Persistence.createEntityManagerFactory("project");
EntityManager em=emf.createEntityManager();
em.getTransaction().begin();
try{
em.persist(values);
em.getTransaction().commit();
“Set identity_insert dbo.table1 on”对项目没有影响。 有没有人遇到过类似的问题并有解决办法?
【问题讨论】:
-
“运行项目”对除您以外的任何人都没有多大意义。我建议您考虑一下为什么在插入行时需要提供标识列的值。这违背了标识列的概念——让数据库引擎在插入期间为每一行生成一个唯一值。如果没有关于您的应用程序代码的更多详细信息,任何人都可以提出任何建议,这是值得怀疑的。
-
"运行项目" -> 点击绿色的开始三角按钮 :)
标签: java sql-server jdbc