JavaWebStack / JavaWebStack/orm
Show better error message when Model class isn't abstract
還沒有人認領這個 Issue。
- 主要語言
- Java
- 星號
- 7
- 分支
- 1
- PR 合併指標
- 30 天內沒有已合併 PR
描述
**Describe the Bug**
When you extend the ORM Model to your own Model and forget to set it to abstract, you get an Exception saying
```
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.lang.reflect.Field.getType()" because the return value of "org.javawebstack.orm.TableInfo.getField(String)" is null
at org.javawebstack.orm.TableInfo.getIdType(TableInfo.java:282)
at org.javawebstack.orm.TableInfo.analyzeTable(TableInfo.java:95)
at org.javawebstack.orm.TableInfo.constructInfo(TableInfo.java:61)
at org.javawebstack.orm.TableInfo.(TableInfo.java:56)
at org.javawebstack.orm.Repo.(Repo.java:35)
at org.javawebstack.orm.ORM.register(ORM.java:25)
at org.javawebstack.orm.ORM.register(ORM.java:37)
```
**To Reproduce**
Steps to reproduce the behavior:
1. Forget to set your model class to abstract
**Expected behavior**
Maybe show some better error message which indicates that your base model isn't abstract yet.
**Environment Information:**
- Java Language Level 21
- ORM Version 1.0.3-SNAPSHOT
貢獻指南
這個儲存庫沒有索引到貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
研究方向
透過註冊一個非抽象模型來重現失敗,然後從 ORM.register 開始追蹤堆疊,進入 Repo.java 和 TableInfo.java,尤其檢查回報行附近的 constructInfo、analyzeTable 和 getIdType。檢查現有的模型驗證與錯誤處理路徑。完成的標準是:這種誤用會產生一個清楚的例外,指出基礎模型必須是抽象的,而不是回報的 NullPointerException。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- java
- 領域
- backend, databases
- Issue 類型
- 缺陷
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100