Hibernate автоматически сгенерированное значение для равных лиц - PullRequest
0 голосов
/ 30 января 2019

Я использую автоматически сгенерированный идентификатор для объекта в спящем режиме.Я хочу, чтобы тот же идентификатор генерировался для экземпляра 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...