Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ';您的SQL';尝试获取对象窗体表时的语法_Java_Mysql_Hibernate - Fatal编程技术网

Java ';您的SQL';尝试获取对象窗体表时的语法

Java ';您的SQL';尝试获取对象窗体表时的语法,java,mysql,hibernate,Java,Mysql,Hibernate,我有一个“对象”表,并使用hibernate 5.0.1.Final 这是我的hibernate实体: @Entity @Table(name = "objects", schema = "spark") public class ObjectsEntity implements Serializable { @Id private int id; @Column(name = "created_at") private Timestamp createdAt; @Column(name = "

我有一个“对象”表,并使用hibernate 5.0.1.Final

这是我的hibernate实体:

@Entity
@Table(name = "objects", schema = "spark")
public class ObjectsEntity implements Serializable {
@Id
private int id;
@Column(name = "created_at")
private Timestamp createdAt;
@Column(name = "updated_at")
private Timestamp updatedAt;
@Column(name = "name")
private String name;
@Column(name = "device_id")
private Integer deviceId;
@Column(name = "group_id")
private int groupId;
@Column(name = "icon_id")
private int iconId;
@Column(name = "photo")
private String photo;
@Column(name = "state_number")
private String stateNumber;
@Column(name = "brand")
private String brand;
@Column(name = "model")
private String model;
@Column(name = "year")
private int year;
@Column(name = "dimensions_length")
private double dimensionsLength;
@Column(name = "dimensions_width")
private double dimensionsWidth;
@Column(name = "dimensions_height")
private double dimensionsHeight;
@Column(name = "lifting_capacity")
private double liftingCapacity;
@Column(name = "fuel_сonsumption_100")
private double fuelСonsumption100;
@Column(name = "fuel_сonsumption_MT")
private double fuelСonsumptionMt;
@Column(name = "speed_display")
private String speedDisplay;
@Column(name = "stopping_time")
private int stoppingTime;
@Column(name = "parking_time")
private int parkingTime;
@Column(name = "parking_speed")
private int parkingSpeed;
@Column(name = "parking_ignite")
private byte parkingIgnite;
@Column(name = "stopping_speed")
private int stoppingSpeed;
@Column(name = "stopping_ignite")
private byte stoppingIgnite;
@Column(name = "personnel_shift")
private byte personnelShift;
@Column(name = "personnel_shift_start")
private Time personnelShiftStart;
@Column(name = "personnel_shift_end")
private Time personnelShiftEnd;
@Column(name = "fuel_сonsumption_100_max")
private double fuelСonsumption100Max;
@Column(name = "fuel_сonsumption_MT_max")
private double fuelСonsumptionMtMax;
@Column(name = "fuel_min_fill")
private int fuelMinFill;
@Column(name = "fuel_ts_fill")
private int fuelTsFill;
@Column(name = "fuel_min_drain")
private int fuelMinDrain;
@Column(name = "fuel_ts_drain")
private int fuelTsDrain;
@Column(name = "type")
private String type;

}
我尝试调用接口的方法来获取对象:

ObjectsEntity object=objectRepository.findById(report.getTransport());
我的控球手:

@Controller
@RequestMapping("/report")
public class ReportController {

@Autowired
private UserRepository userRepository;
@Autowired
private ObjectRepository objectRepository;

@RequestMapping(method = RequestMethod.POST, value = "/getReport", produces = "application/json; charset=utf-8")
public @ResponseBody
ResponseEntity<Report> getReport(
        @RequestParam (value = "report") String reportVal
){
    try {
        ObjectMapper mapper = new ObjectMapper();
        Report report = mapper.readValue(reportVal, Report.class);

        ReportsGenerator reportsGenerator = new ReportsGenerator(report);
        ObjectsEntity object = 
objectRepository.findById(report.getTransport());
        return ResponseEntity.ok(report);
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}

}
不幸的是,我不能提供较小的实体和查询(到目前为止,我只有两个实体,并且使用另一个实体时一切正常)

我正在使用:

  • 弹簧靴

  • mysql 5.7

  • JDBC4

我做错了什么

有人知道确切的问题是什么吗


非常感谢您的帮助,谢谢,Shneor。

由于错误消息中的字母
c
被替换为
,因此字段名很可能有一个不同的字母代替了
c
。一些看起来非常类似于
c
,但不相同的东西(例如
ç
),MySQL由于其字符集配置而无法识别它


我会将错误消息中显示的字段名中的字母更改为
c

我无法在您的实体中发现任何错误,因此我假设它一定在其他地方。如果可能的话,请提供一份报告。此外,最好发布Hibernate生成的整个SQL查询(如果可以,可以使用较小的实体,这样就不会太大)。如果您将记录器
org.hibernate.SQL
设置为debug,您应该会得到该查询。我的猜测是,它不是SQL语句中的字符
c
,只是看起来非常相似的东西(例如
ç
),与所使用的字符集不兼容,因此错误消息中出现了
。@Thomas我已经提供了整个查询、控制器和存储库界面。想法不错。我只是通过复制一列的发布名称并将其与手动键入的字符串进行比较来测试:它们看起来相同,但不相同(根据
string.equals()
)。打印代码点显示“c”不是代码点99(小写c),而是1089。
@Repository
public interface ObjectRepository extends JpaRepository<ObjectsEntity, Long> {
ObjectsEntity findById(int id);
}
select usersentit0_.id as id1_1_, usersentit0_.activationCode as activati2_1_, usersentit0_.avatar_path as avatar_p3_1_, usersentit0_.client_id as client_i4_1_, usersentit0_.companyName as companyN5_1_, usersentit0_.companySite as companyS6_1_, usersentit0_.created_at as created_7_1_, usersentit0_.default_language as default_8_1_, usersentit0_.default_timezone as default_9_1_, usersentit0_.email as email10_1_, usersentit0_.isActive as isActiv11_1_, usersentit0_.name as name12_1_, usersentit0_.owner as owner13_1_, usersentit0_.password as passwor14_1_, usersentit0_.permissionAdmin as permiss15_1_, usersentit0_.permissions as permiss16_1_, usersentit0_.phone1 as phone17_1_, usersentit0_.phone2 as phone18_1_, usersentit0_.position as positio19_1_, usersentit0_.remember_token as remembe20_1_, usersentit0_.role as role21_1_, usersentit0_.socket_token as socket_22_1_, usersentit0_.summer_time as summer_23_1_, usersentit0_.updated_at as updated24_1_, usersentit0_.username as usernam25_1_ from users usersentit0_ where usersentit0_.id=?