我剛剛開始探索 Spring Data JDBC。我有一個簡單的數據庫(postgres),其中包含我要查詢的問卷表:CREATE TABLE IF NOT EXISTS foster.questionnaires ( questionnaire_id SERIAL PRIMARY KEY, version varchar(10), name text, title text, description text, status questionnaire_status_types);和 Java 類:(配置靈感來自這里)@SpringBootApplication(scanBasePackages= {"com.app.foster"})@EnableJdbcRepositories("com.app.foster.dal.repositories")public class FosterApplication extends JdbcConfiguration { // Config @Bean NamedParameterJdbcOperations operations() { return new NamedParameterJdbcTemplate(dataSource()); } @Bean PlatformTransactionManager transactionManager() { return new DataSourceTransactionManager(dataSource()); } @Value("${spring.datasource.url}") private String url; @Bean @ConfigurationProperties("spring.datasource") public HikariDataSource dataSource() { //User name and password is fetched from some other data storage HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setJdbcUrl(url); hikariConfig.setUsername("postgres"); //TODO: abstract these hikariConfig.setPassword("password"); //The data source created here doesn't have connection timeout value //set by me return new HikariDataSource(hikariConfig); } @Bean public ApplicationListener<?> loggingListener() { return (ApplicationListener<ApplicationEvent>) event -> { if (event instanceof RelationalEvent) { System.out.println("Received an event: " + event); } }; } public static void main(String[] args) { SpringApplication.run(FosterApplication.class, args); } }(實體)@Entity@Table(name="questionnaires")public class Questionnaire { @Id Long questionnaire_id; String version; String name; String title; String description; }
2 回答

慕容3067478
TA貢獻1773條經驗 獲得超3個贊
通過一些實驗找到了修復:
事實證明我收到了錯誤
entity is marked @NonNull but is null
因為我試圖查詢的實體有一個 postgresql 枚舉類型列,我用 java 代碼中的枚舉表示(我猜因此實體沒有解析?)...將字段更改為 String 列解決了問題。也許這里的錯誤信息可以細化...

BIG陽
TA貢獻1859條經驗 獲得超6個贊
我想,你必須為你的實體實現默認構造函數。 https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.8.9
添加回答
舉報
0/150
提交
取消