Почему equals () не вызывается @idclassJAVA

Программисты JAVA общаются здесь
Anonymous
Почему equals () не вызывается @idclass

Сообщение Anonymous »

Я хочу использовать аннотацию @idclass, чтобы сделать композитный PK из длинных значений и даты. При отладке я заметил, что метод equals () не используется, моя точка останова никогда не попадает.@Entity

@Table(name = "view_ins_test", schema = "dbo")

@IdClass(value = InsPK.class)

public class InsTest {

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

@Column(name = "ins_id", nullable = false)

private Long id;

@Id

@Temporal(TemporalType.DATE)

@Column(name = "ins_data")

private Date data;

// + getters/setters

}
< /code>
composite pk class: < /p>
public class InsPK implements Serializable {

private Long id;

private Date data;

public InsPK() {

}

public InsPK(Long id, Date data) {

this.id = id;

this.data = data;

}

@Override

public int hashCode() {

int hash = 7;

hash = 89 * hash + Objects.hashCode(this.id);

hash = 89 * hash + Objects.hashCode(this.data);

return hash;

}

@Override

public boolean equals(Object obj) {

if (this == obj) return true;

if (!(obj instanceof InsPK)) return false;

InsPK other = (InsPK) obj;

return Objects.equals(this.id, other.id) && Objects.equals(this.data, other.data);

}

// + getters/setters

}
< /code>
Я пробовал несколько вариантов, но не удалось заставить его работать. В чем может быть проблема в таком случае и как лучше всего его решить?

Подробнее здесь: https://stackoverflow.com/questions/654 ... th-idclass

Вернуться в «JAVA»