ItemDao.xml中的
我看到了一些类似的问题,但是,我只是无法在代码中获得正确的ID值。它总是在插入后返回1作为ID。
ItemController.java
@Operation(description = "Insert Test")
@PostMapping("/item/add")
@ResponseBody
void upsertTest(
@RequestBody itemForm testForm
) {
Long itemId = itemService.getItemId();
itemForm.setItemId(itemId);
System.out.println("Item ID: " + itemId );
}
ItemService.java
@Service("ItemService")
public class ItemService {
private final ItemDao itemDao;
@Autowired
public ItemService(@Qualifier("itemDao") final ItemDao itemDao) {
this.itemDao = itemDao;
}
public Long getItemId(){
return itemDao.getItemId();
}
}
项目Dao.java
@Component("itemDao")
@Repository
public interface ItemDao {
Long getItemId();
}
ItemDao.xml
<insert id="getItemId" useGeneratedKeys="true" keyProperty="itemId" keyColumn="ITEM_ID">
INSERT INTO ITEM_ID_TABLE (DUMMY) VALUES (null)
</insert>
我的表基本上是2列(ITEM_ID,DUMMY(,并且有一个触发器,可以使用ITEM_ID列上的序列插入ID。
每当我进行插入输出时:
Item ID: 1
即使我已经完成了多次插入
尝试如下操作:
<insert id="getItemId" useGeneratedKeys="true" keyProperty="itemId" keyColumn="ITEM_ID">
INSERT INTO ITEM_ID_TABLE (DUMMY) VALUES (null)
<selectKey keyProperty="returnId" resultType="int" order="AFTER">
SELECT LAST_INSERT_ID();
</selectKey>
</insert>
基于这个问题。