亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在jooq中使用DAO時出現DataAccessException

在jooq中使用DAO時出現DataAccessException

動漫人物 2023-12-13 15:07:05
我想使用 DAO 將生成的 Pojo 添加到數據庫。但我收到異常并且不知道如何解決它。我嘗試在每個表前面添加一個 Public.Troop 。將部隊插入到 DAO 用法中:TroopDao dao = new TroopDao(new DefaultConfiguration().set(SQLDialect.SQLITE).set(database.getConnection()));Troop initial = new Troop(1, 100, 120, 120.2, 11.2, 12.0, 13.0, 6245.0, 1534.0, 1364.0, 121235.3, 125.3, 51.3);dao.insert(initial);使用的數據庫文件:CREATE TABLE IF NOT EXISTS TROOP(    id INTEGER PRIMARY KEY AUTOINCREMENT,    current_health INTEGER NOT NULL,    max_health INTEGER NOT NULL,    pos_x DOUBLE NOT NULL,    pos_y DOUBLE NOT NULL,    normal_speed DOUBLE NOT NULL,    street_speed DOUBLE NOT NULL,    difficult_terrain_speed DOUBLE NOT NULL,    close_combat_range DOUBLE NOT NULL,    ranged_combat_range DOUBLE NOT NULL,    normal_view_distance DOUBLE NOT NULL,    disadvantaged_view_distance DOUBLE NOT NULL,    advantaged_view_distance DOUBLE NOT NULL);CREATE TABLE IF NOT EXISTS ARMY(    id INTEGER,    hq INTEGER,    troop INTEGER,    FOREIGN KEY(hq) REFERENCES TROOP(id),    FOREIGN KEY(troop) REFERENCES TROOP(id),    UNIQUE(hq, troop),    PRIMARY KEY (id, hq, troop));JOOQ一代,我也嘗試過unqualifiedSchema = main:        Configuration configuration = new Configuration()                .withGenerator(new Generator()                        .withDatabase(new Database()                                .withName("org.jooq.meta.extensions.ddl.DDLDatabase")                                .withIncludes("ARMY | TROOP")                                .withOutputSchemaToDefault(Boolean.TRUE)                                .withProperties(new Property()                                                .withKey("unqualifiedSchema")                                                .withValue("none"),                                        new Property()                                                .withKey("scripts")
查看完整描述

1 回答

?
浮云間

TA貢獻1829條經驗 獲得超4個贊

根據 jOOQ 3.12,它DDLDatabase會解析您的 SQL 腳本,將它們轉換為 H2 并針對內存中的 H2 數據庫運行它們,該數據庫用作PUBLIC默認模式,從代碼生成器的角度來看,所有表現在都位于該數據庫中。

SQLite 中不存在這樣的模式,這就是您收到所看到的錯誤的原因。jOOQ 3.12 通過支持一個新屬性修復了這個問題unqualifiedSchema,該屬性允許在 DDL 腳本中指定所有不合格表的隱含模式。默認情況下,假設這映射到PUBLICH2 中,PUBLIC則假定為“默認模式”。因此,要解決此問題,只需升級到 jOOQ 3.12 即可。

注意:您已經在使用此標志,但沒有使用 jOOQ 3.12。該功能在 2011 年 11 月 3 日尚未提供。


查看完整回答
反對 回復 2023-12-13
  • 1 回答
  • 0 關注
  • 191 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號