NutzCN Logo
问答 批量插入出现org.nutz.dao.DaoException: Need non-arg constructor错误
发布于 2373天前 作者 1300375795 2145 次浏览 复制 上一个帖子 下一个帖子
标签:

下面的代码会出现org.nutz.dao.DaoException: Need non-arg constructor : class cn.sayyoo.house.constant.HouseFeatureEnum
这个错误,具体的代码在下面也不知道什么情况,求解答

 private void insertHouseFeature(Room room) throws Exception {
        List<HouseFeatureEnum> featureList = room.getFeatureList();
        if (featureList != null && featureList.size() > 0) {
            Sql sql = dao().sqls().create("deleteFeatureByRoomId");
            sql.setParam("roomId", room.getId());
            dao().execute(sql);
            dao().fastInsert(featureList);
        }
    }
public enum HouseFeatureEnum {
    WIFI,
    FACE_SOUTH;
    HouseFeatureEnum() {
    }
}
7 回复

去掉构造方法或者写public

去掉构造方法还是不行,枚举类构造方法不能是public

等等,怎么会直接插入枚举呢?这不合理吧?

是插入的枚举类型,如果用for循环遍历出来一个一个插入是没有问题的,但是这样性能挺差,所以想着能不能批量插入,但是试了下貌似不行

   HouseFeature houseFeature;
            for (HouseFeatureEnum feature : featureList) {
                houseFeature = new HouseFeature();
                houseFeature.setRoomId(room.getId());
                houseFeature.setFeature(feature);
                insert(houseFeature);
                logger.info("插入房源的特色:" + feature + "成功");
            }

你后面insert的是HouseFeature对象,上面批量插入的枚举列表,你是不是敲错代码了? 应该是List才对吧?

应该是 List<HouseFeature>

后面的那个代码只是想表达我寻遍遍历枚举列表,然后一个一个插入的时候是可以的,但是像前面那样直接直接批量插入集合会报异常

添加回复
请先登陆
回到顶部