JavaWebStack / JavaWebStack/orm

Show better error message when Model class isn't abstract

未關閉
#56 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

bug
主要語言
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

貢獻指南

這個儲存庫沒有索引到貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

研究方向

透過註冊一個非抽象模型來重現失敗,然後從 ORM.register 開始追蹤堆疊,進入 Repo.java 和 TableInfo.java,尤其檢查回報行附近的 constructInfo、analyzeTable 和 getIdType。檢查現有的模型驗證與錯誤處理路徑。完成的標準是:這種誤用會產生一個清楚的例外,指出基礎模型必須是抽象的,而不是回報的 NullPointerException。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
java
領域
backend, databases
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。