The attack took place at a hotel in the kibbutz Tzuba, about a mile west of Jerusalem.
In Israeli media, the perpetrator is described as a Palestinian from Shuafat, a mainly Palestinian-Arab part of occupied east Jerusalem.
The act occurs days after six people were killed in a shooting at a bus station in east Jerusalem, which Israel has occupied since 1967. The two perpetrators, who came from a village near Ramallah on the Palestinian West Bank, were killed on the spot.
The Palestinian extremist movement Hamas has later taken responsibility for the shooting.