最近,想将项目转移到pgsql平台,同时3.4对pgsql时间类型做了增强,数据库建了一张account表,类型基本上和club中的account表一致,除了status是char型,createAt是timestamp without time zone类型,config.java中配置了pgsql的方言,sql大小写不敏感了。但就是保存日期会失败,
Sql: insert into "account"("avatar", "createat", "id", "likecount", "nickname", "password", "salt", "status", "username") values(?, ?, ?, ?, ?, ?, ?, ?, ?)
org.postgresql.util.PSQLException: ERROR: column "createat" of relation "account" does not exist
account表采用的是驼峰命名,仔细分析,发现sql语句将字段名全部转成小写了,于是将“大小写不敏感”的配置注释掉,
// arp.setContainerFactory(new CaseInsensitiveContainerFactory(true));// 大小写不敏感
结果运行成功。所以,如果驼峰命名,还是保持大小写敏感比较好,以免浪费时间。
如果一定要使用 CaseInsensitiveContainerFactory,也一定不要使用构造方法的参数,例如你上面使用时传入了 true 作为参数,这个会自动转换成小写
如果传入 false 会自动转成大写,如果不传则不转换