Hmm, I think I'll add a local var that holds the hashcode and updates it whenever the recipe gets changed, it will also only use the ingredients ids then it's off to equals to finish the job.