Why do you use the legacy HBM mappings in 2017? JPA annotations are more expressive, and better supported in latest versions of Hibernate.
Since you have 3 many-to-one associations, I guess you need 3 different columns, right?
Code:
<many-to-one name="admin">
<join-column name="admin_id" />
</many-to-one>
<many-to-one name="client">
<join-column name="client_id" />
</many-to-one>
<many-to-one name="worker">
<join-column name="worker_id" />
</many-to-one/>
In your mapping, you used only one column (userId), but that would just create 3 associations that are identical.
Or, in case you use a single userId FK column, you need an extra column as a discriminator for Admin, Client, Worker. Or maybe you need to use inheritance and the User class is a base class while Admin, Client, Worker are subclasses.