我是java的新手,正在开发一个java spring项目。现在我要确保我已经完成的工作存储在数据库中,我手动插入一些值。
代码如下所示:
Department departmentDetails = new Department();
departmentDetails.setDepartmentName( "cse" );
departmentDetails.setStatus( 1 );
departmentDetails.setModifiedBy( "mehul" );
departmentDetails.setCreatedBy( "mehul" );
departmentDetails.setCreatedOn( new Timestamp( System.currentTimeMillis() ) );
departmentDetails.setModifiedOn( new Timestamp( System.currentTimeMillis() ) );
departmentDetailsRepository.save( departmentDetails );
departmentDetails.setDepartmentName( "ECe" );
departmentDetails.setStatus( 1 );
departmentDetails.setModifiedBy( "gowdru" );
departmentDetails.setCreatedBy( "gowdru" );
departmentDetails.setCreatedOn( new Timestamp( System.currentTimeMillis() ) );
departmentDetails.setModifiedOn( new Timestamp( System.currentTimeMillis() ) );
departmentDetails = departmentDetailsRepository.save( departmentDetails );
我没有创建新对象,而是在将其详细信息保存在数据库中后再次使用它。 但是,当我执行此操作时,只有第二个细节,即部门 ECE 创建 保存 gowdru ,但不保存第一条记录。
我在这里做错了什么?
答案 0 :(得分:0)
您需要创建新实例才能创建“新”行。
答案 1 :(得分:0)
你使用的方式不对。
试试这个
Department departmentDetails = new Department();
...
departmentDetailsRepository.save(departmentDetails);
departmentDetails = new Department(); //Create a new object.
...
departmentDetails = departmentDetailsRepository.save(departmentDetails);
答案 2 :(得分:0)
这是因为Hibernate实际上在调用save
方法之后不进行保存操作,它会在提交事务期间保留您的数据。此外,如果您使用相同的对象,它只会更新它,您甚至不需要第二次调用save
。要在db中创建2条记录,您应该创建新对象,因为当前对象处于持久状态。