无法找到" * _表" Android(Studio)中的DBFlow类

时间:2016-05-14 17:02:30

标签: android android-studio dbflow

我正在尝试在Android中使用库DBFlow。我之前和之前的版本(2.2.1)使用过它,它使用了$ Table.field。现在它似乎有另一种格式,我们通过" _Table"来引用一个新类。

示例:

int taxBracketCount = SQLite.select(count(Employee_Table.name))
.from(Employee.class)
.where(Employee_Table.salary.lessThan(150000))
.and(Employee_Table.salary.greaterThan(80000))
.count();

这些" _表"何时何地课程创建?我如何访问它们? (即使我想使用旧版本,我新创建的工作室项目也不会创建$文件。对此或两者的一些解释会很好)

4 个答案:

答案 0 :(得分:4)

您需要为要生成的文件运行成功的构建。确保您的代码可以编译,因此删除对“_Table”类的任何引用并首先运行您的项目,然后您应该能够访问它们。

答案 1 :(得分:2)

我最近发现了一些奇怪的错误,说它无法找到那些" $ Table"课程,但实际上他们已经建立并在那里。

我评论并取消注释每个新的java文件。最终我找到了因为没有" @ PrimaryKey"在DBFlow的一个模型类中。

因此,您必须为您的DBFlow模型类定义血腥的" @ PrimaryKey" (并且不要忘记扩展BaseModel 以及)。 PS:DBFlow版本3.0.0-beta

/Users/XXX/code_projects/###/src/main/java/com/XXXXX.java:9: error: cannot find symbol
import com.XXX.databasemodel.XXX$Table

答案 2 :(得分:2)

_Table类及其与数据库通信的相应方法是在构建项目时创建的。即使出现这些错误,您也可以构建它,并且可以在那一刻创建它们。

如果您仍然面临这个问题,请务必在课堂上添加@Table注释,否则就无法创建。

答案 3 :(得分:0)

我遇到了同样的问题,但原因是没有注释

@Table(databaseName = AppDatabase.NAME)

位于

的顶部
public class AwesomeModel extends BaseModel 
    @PrimaryKey(autoincrement = false)
    @Column @Expose long id;

    public long getId() {
        return id;
    }
}

...类