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 摘要。