@TableField(exist = "false") private String deptname;false报错解决方法
时间: 2023-12-14 19:30:40 浏览: 79
这个报错是因为在实体类中,@TableField注解的exist属性默认为true,表示该字段在数据库中存在,但是你的实体类中的该字段在数据库中不存在,所以需要将exist属性设置为false。修改后的代码如下:
@TableField(exist = false)
private String deptname;
相关问题
@Data public class StorageLocationVo extends StorageLocation { @ApiModelProperty(value = "货架名") private String shelfName; private String type; private Integer sectionNum; private Integer layerNum; } @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_storage_location") @ApiModel(value="StorageLocation对象", description="储位表") public class StorageLocation implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "ID") @TableId(value = "id", type = IdType.AUTO) private Long id; @ApiModelProperty(value = "储位名称") private String name; @ApiModelProperty(value = "储位编码") private String code; @ApiModelProperty(value = "库房id") private Long storeroomId; @ApiModelProperty(value = "站点id") private Long siteId; @ApiModelProperty(value = "识别编码") private String identifyCode; @ApiModelProperty(value = "货架id") private Long shelfId; @ApiModelProperty(value = "是否删除 0:正常 1:删除") @TableLogic private String isDelete; @ApiModelProperty(value = "创建时间") @TableField(fill = FieldFill.INSERT) private Date createTime; @ApiModelProperty(value = "更新时间") @TableField(fill = FieldFill.UPDATE) private Date updateTime; @ApiModelProperty(value = "所属站点名称") @TableField(exist = false) private String siteName; @ApiModelProperty(value = "所属库房名称") @TableField(exist = false) private String storeroomName; @ApiModelProperty(value = "所属货架名称") @TableField(exist = false) private String shelfName; @ApiModelProperty(value = "所属货架编码类型") @TableField(exist = false) private String codeRule; @ApiModelProperty(value = "所属货架节数") @TableField(exist = false) private Integer sectionNum; @ApiModelProperty(value = "所属货架层数") @TableField(exist = false) private Integer layerNum; } 分析一下为什么报java: com.tuimi.gwznkf.storage.entity.vo.StorageLocationVo中的setShelfName(java.lang.String)无法覆盖com.tuimi.gwznkf.storage.entity.StorageLocation中的setShelfName(java.lang.String) 返回类型void与com.tuimi.gwznkf.storage.entity.StorageLocation不兼容 问题解决
这个问题是由于在子类StorageLocationVo中定义了一个与父类StorageLocation中同名的属性shelfName,并且使用了@Data注解,自动生成了一个setShelfName方法,但是返回类型不同导致的。
解决该问题有两种方法:
1. 删除子类StorageLocationVo中的属性shelfName,因为父类中已经定义了该属性,所以不需要在子类中再定义一次。
2. 在子类StorageLocationVo中重新定义setShelfName方法,并且保证方法签名(包括返回类型、方法名和参数列表)与父类中的方法一致。可以使用@Override注解来表示该方法是对父类方法的重写。例如:
```
@Override
public void setShelfName(String shelfName) {
super.setShelfName(shelfName);
// 子类自定义的操作
}
```
需要注意的是,在子类中重写父类方法时,应该先调用父类的方法,再进行子类自己的操作,以保证方法的正确性。
@Data public class Dish implements Serializable { private Long id;//主键 private String name;//菜品名称 private Long categoryId;//所属分类id private BigDecimal price;//菜品价格 private String code;//商品码 private String image;//图片 private String description;//描述信息 private Integer status;//0 停售 1 起售 private Integer sort;//顺序 @TableField(fill = FieldFill.INSERT) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; @TableField(fill = FieldFill.INSERT) private Long createUser; @TableField(fill = FieldFill.INSERT_UPDATE) private Long updateUser; //===================数据表中不存在下面字段,仅仅用于页面显示=================== //菜品口味列表 @TableField(exist = false) private List<DishFlavor> flavors = new ArrayList<>(); //菜品分类名称 @TableField(exist = false) private String categoryName; @TableField(exist = false) private Integer copies; }利用springboot分页查询
可以使用Spring Data JPA提供的PagingAndSortingRepository接口来实现分页查询,具体步骤如下:
1.在DishRepository中继承PagingAndSortingRepository接口。
```
public interface DishRepository extends PagingAndSortingRepository<Dish, Long> {
}
```
2.在DishService中定义一个方法来实现分页查询。
```
@Service
public class DishService {
@Autowired
private DishRepository dishRepository;
public Page<Dish> findDishByPage(int pageNum, int pageSize) {
Sort sort = Sort.by(Sort.Direction.DESC, "createTime");
Pageable pageable = PageRequest.of(pageNum - 1, pageSize, sort);
return dishRepository.findAll(pageable);
}
}
```
3.在DishController中调用该方法。
```
@RestController
@RequestMapping("/dishes")
public class DishController {
@Autowired
private DishService dishService;
@GetMapping("/page")
public Page<Dish> findDishByPage(@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize) {
return dishService.findDishByPage(pageNum, pageSize);
}
}
```
其中,PageRequest.of()方法用于创建分页请求对象,findAll()方法用于执行分页查询操作。在方法中还可以设置排序方式,例如按照创建时间倒序排序。
阅读全文