Creating a database
When writing an application using Room, you'll need to define at least one Database class. Each of these corresponds to a specific database schema--a collection of Entity classes and the various ways in which they can be saved, and loaded from storage. It may also serve as a convenient place to write other database-related logic for your application. For example, the ClaimItem
and Attachment
classes need to save and load various types that Room will not understand; for example, Date
, File
, the Category
enum, and Attachment
Type
enum. Each of these classes will need a TypeConverter
method that can be used to convert it to and from primitives that are understood by Room.
Room Database classes are abstract. This is because they are extended by the Room annotation processor to produce the implementation you'll use at runtime. This allows you to define any number of concrete method implementations in a database class that might be useful for your application. Follow these steps...