I have recently discovered the Objects.hash() method.
My first thought was, that this tidies up your hashCode() implementation a lot. See the following
Note that the parameter of Objects.hash is Object.... This has two main consequences:
this.id is converted from long to Long.Object[] has to be created to invoke the method.The cost of creating of these "unnecessary" objects may add up if hashCode is called frequently.