For my kids, I don't mind them telling me, when I'm not serving something to them, what they like and don't like. We've talked to them about not asking what's for dinner and then saying, "Oh, I don't like that," but it's okay to generally say they don't like whatever, or to, when given a choice between two things, to tell me that they don't like one.
But that's at home. When we are invited to somebody's house, I remind them that we're on "company manners." That means that, unlike at home, they don't have to try *anything* if they don't want to (at home they must try a "no, thank you" bite of each thing). In return, though, they are not to say yuck or that they don't like something. They are to say, "No, thank you, it's not to my taste."
The 4-year-old and 6-year-old grasp this and have for a good while. The 2-year-old basically understands it but could be expected to make a mistake. I think 3 is a reasonable age to grasp this. However, the parent needs to explain it, it's not something they figure out on their own.
Since you said this is a close relative, I think it's acceptable to say, if the child says "yuck!" or "I don't like that," something along the lines of, "Billy, it's okay not to like green beans. But I took a long time to try to make them special for everybody, and it hurts my feelings when you say you don't like them. Would you just say, "No, thank you," or "they're not to my taste," (or whatever you'd prefer) next time? If you just say "no, thank you," I won't serve you any and you won't have to eat them, but I also won't get my feelings hurt." Maybe? Or a shorter version of the same?