Play 2.6.21: ThreadLocal: JPA EntityListener

In my Entity class I have a reference to an EntityListener. I want to make the access to the request user using a ThreadLocal.

Can someone provide me with an example or point me in the right direction? The example below does not works!!

public final class UserIdHelper {
  private static final ThreadLocal<String> userIds = new ThreadLocal<>();

  public static void setCurrentUserId(String userId) {
    userIds.set(userId);
  }

  public static String getCurrentUserId() {
    return userIds.get();
  }

  public static void removeCurrentUserId() {
    userIds.remove();
  }
}

public class EmployedController extends Controller {
   @Transactional
   public Result example() {
      try {
  	    UserIdHelper.setCurrentUserId("test");
	    Employed emp = EmployedRepository.merge(Json.fromJson(request().body().asJson, Employed.class));
	    EmployedRepository.save(emp);
		return ok( Json.toJson(emp) );
	  } finally {
	    UserIdHelper.remove();
	  }
   }
}

@EntityListener(EmployedListener.class)
class Employed  {
	private Long id;
	private String createdBy ;
	/// getters & setters
}

class EmployedListener {
	@PreUpdate
	private void preUpdate(Employed emp)  {
		emp.createdBy = UserIdHelper.getCurrentUserId();  //  NULL !!!!!!
	}
}