Если имеется ввиду, нужны ли констрейнты в базе данных, то нет, необязательно. Они нужны, что бы гарантировать целостность данных в базе данных ну и как средство документирования. Пока программа работает правильно, что они есть, что их нету. В один прекрасный момент ваша программа или сторонняя начнет писать мусор в базу данных, и с констрейнтами вы отловите это очень быстро. Без них начнет все сыпаться, так как JPA ожидает связанный объект а там null.
Если имеется ввиду, нужны ли первичные и сторонние ключи в табличках, то скорее всего да.