I know this answer comes “a bit” late, but…
An embedding layer turns known words into embedding vectors, and yes: it is just a lookup table that maps words to their vectors (although those vectors are trained, not just assigned).
IMHO, the best way, if you are worried about OOV words, is to train your embedding layer with texts from your domain, using a corpus as large and varied as you can get. In this way you will minimize the impact of OOV words, as the most relevant words that give meaning to the sentences in your domain will be well covered.