Hi!
@java.lang.Override
@java.lang.SuppressWarnings("all")
@javax.annotation.Generated("lombok")
public boolean equals(final java.lang.Object o) {
if (o == this) return true;
if (!(o instanceof Technique)) return false;
final Technique other = (Technique) o;
if (!other.canEqual((java.lang.Object) this)) return false;
final java.lang.Object this$medium = this.getMedium();
final java.lang.Object other$medium = other.getMedium();
if (this$medium == null ? other$medium != null : !this$medium.equals(other$medium)) return false;
return true;
}
As you can see, it doesn't look at country at all, and it doesn't call super.equals either. In other words, all of Artist's fields are ignored by Technique's equals method.
If you use @EqualsAndHashCode, you can pass it a parameter to look at the superclass, like this: @EqualsAndHashCode(callSuper=true)
There's probably a similar parameter for @Data, you'll have to check the documentation to make sure.
Cheers,
Jan