首页 > 解决方案 > 为什么我会收到“Entity class must be annotated with @Entity”错误,我该如何忽略它?

问题描述

我有一个带 Lombok 注释的 POJO,用于应用程序的其他部分,不适用于 Room。但是当我尝试构建我的项目时,我得到了Entity class must be annotated with @Entity关于它的错误并且构建失败了。

我知道我可以通过添加一堆@Ignored 字段来强制我的一个实际 Room 实体填充这个数据对象的角色,但这似乎很愚蠢。我怎么能告诉它这个类不是一个实体并且 Room 应该不理会它?

这是它抱怨的课程:

import androidx.annotation.DrawableRes;

import lombok.Builder;
import lombok.Value;

@Value
@Builder
public class MyPOJO {
    final String matchQuality;
    final String identifier;
    final String fitDate;
    @DrawableRes
    final int image;
}

标签: androidannotationsandroid-room

解决方案


这是我的错。

当我刚开始我的实现并且没有创建任何实体时,我需要在数据库实体注释中添加一些内容并将MyPOJO其作为占位符放置:

@Database(entities = {MyPOJO.class}, version = 1)
abstract public class MyDB extends RoomDatabase {

一旦我用我的实际@Entity类替换它,我就不再得到这个构建错误。


推荐阅读