More details about the application could be needed to provide a good answer.
How do you decide that an entity type of ‘bar’ is what corresponds to the ‘foo’ entity ? is it selected by the user, or read from a file, or how ?
Does this app have a GUI ?
Usually, when a list of options is shown to the user, a description or name is shown but an id or code is internally used and stored, so the program can insert or do whatever it needs to do using the id instead of the description (‘bar’). This id-description relation is created when the control is populated, from a database table.
However, if your application reads the entity type from an external source (such as a text file, or a tcp socket) and not from any kind of menu provided by the same application, then there probably isn’t another option than looking for the id in the database.
If that is the case, you might be able to improve performance by storing the contents of the EntityTypes table in memory structures and use some additional routines to get the id and to verify that the type is in fact one of the allowed types (this could also be necessary because AFAIK SQLite lets you define foreign keys but it doesn’t enforce them, so you could end up inserting incorrect entity types into the Entity table even when a foreign key exists). <b>However, these memory structures should be populated from the database table (when the app starts), so, the table is still needed (and recommended).</b>