Моя команда использует Hibernate Tools 4.0.0 в текущем проекте, и я использую FindBugs. Он отмечает, что метод equals
кода ORM использует ==
вместо equals
.Reverse engineering generate ==, not equals
Я искал, но не смог найти, как это изменить. По моему мнению, не следует использовать equals
вместо ==
? Если да, то как это сделать (через hibernate.reveng.xml
или что-то еще)?
Обновление: Мне нужно было прокрутить вправо, чтобы увидеть остальную часть созданного кода. Оказывается, первая часть, которая была отмечена , является, делая ссылку на память. Тем не менее, OR'd сравнивается с использованием equals
. Так что это просто случай, когда нужно внимательно читать.
Поскольку это класс id, более конкретно первичные ключи к таблице. Я предполагаю, что он имеет дело с объектными значениями, а не с ссылками. Не имеет смысла говорить, что две вещи не равны, если их ссылки на Java различны. База данных этого не видит;) Кроме того, я согласен с тем, что это переопределяет 'Object'' equals', что опять-таки касается значений, а не ссылок. – user1766760
Хотя я предполагаю, что другой способ взглянуть на это, так или иначе Hibernate * не считает объекты одинаковыми, если их ссылки не совпадают? Я не знаю, почему это меня действительно беспокоит, но я не могу найти ничего в Интернете ... это обычно означает, что мое понимание ошибочно. Это не имеет никакого смысла. – user1766760
Пример: 'String a =" someString "; Строка b = a; if (a == b) {System.out.println ("То же ссылка!"); } 'prints" То же самое! " поскольку объекты a и b относятся к одному и тому же местоположению памяти (аналогично указателю). – SnakeDoc