我见过几个类似的问题,但是,我就是无法在代码中获得正确的id值。它总是在insert之后返回1作为id。
项目控制器.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 );
}
项目服务.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>
我的表基本上是两列(item\u id,dummy),并且有一个触发器,可以使用item\u id列上的序列插入id。
每当我插入时,输出是:
Item ID: 1
即使我已经做了多次插入
1条答案
按热度按时间4nkexdtk1#
在itemdao.xml中,尝试以下操作:
基于这个问题。