Я использую автоматически сгенерированный идентификатор для объекта в спящем режиме.Я хочу, чтобы тот же идентификатор генерировался для экземпляра equals.Здесь я создаю два равных объекта и добавляю их один из них к другому спящему объекту и сохраняю их обоих.Я хочу, чтобы их идентификатор был одинаковым.
Как я могу это сделать?
@Entity
@Table(name = "some_entity", uniqueConstraints = {})
public class SomeEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
String fullName;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SomeEntity someEntity = (SomeEntity ) o;
return Objects.equals(fullName, someEntity .fullName);
}
@Override
public int hashCode() {
return Objects.hash(fullName);
}
}
@Entity
@Table(name = "other_object")
public class OtherObject{
@ManyToOne(cascade = {}, fetch = FetchType.LAZY)
@JoinColumn(name = "some_entity1_id")
private SomeEntity some_entity;
@ManyToOne(cascade = {}, fetch = FetchType.LAZY)
@JoinColumn(name = "some_entity2_id")
private SomeEntity some_entity2;
}
someEntity1 = new SomeEntity("fullName1");
someEntity1shouldEqual = new SomeEntity("fullName1");
someEntity2 = new SomeEntity("fullName2");
otherObject = new OtherObject(someEntity1shouldEqual ,someEntity2);
db.persist(someEntity1);
db.persist(otherObject);
//expected true-
someEntity1.id = someEntity1shouldEqual.id