Patch looks good overall.
Assuming the hashCode() methods are generated(eclipse?) and good enough.
I also like the fact that now equals(), hashCode(), and comparesTo() are tied to the records themselves instead of the PB implementations. We should do this for other records too, but another ticket.
+1 for the patch.