Изменение имен свойств в запросах JPA - PullRequest
4 голосов
/ 01 июня 2009

Я использую соглашение о префиксе имен полей с подчеркиванием. Когда я генерирую аннотируемые классы сущностей с такими полями, я привязываюсь к использованию имен запросов с префиксом подчеркивания в запросах. Я хочу избежать этого и быть в состоянии сделать:

@Entity
public class Container {

    private String _value;
}

// in a lookup method
executeQuery("from Container where value = ?", value);

Возможно ли это с JPA вообще или Hibernate в частности?


Обновление: Все еще пытаюсь вспомнить почему, но мне нужно, чтобы это было отмечено на полях, а не на получателях.

Ответы [ 3 ]

4 голосов
/ 01 июня 2009

Вы можете аннотировать геттер:

@Entity
public class Container {

    private String _value;

    @Column
    public String getValue()
    {
        return _value;
    }

    public void setValue( String value )
    {
        this._value = value;
    }

}
1 голос
/ 01 июня 2009

Возможно, вы могли бы написать подклассы ваших сгенерированных классов сущностей, в которых есть методы получения, а затем настроить менеджер объектов для использования доступа получения / установки вместо доступа к полю? Тогда ваши геттеры / сеттеры могут иметь любое имя, которое вам нравится.

0 голосов
/ 10 июня 2009

Посмотрите на NamingStrategy. Было бы довольно легко расширить DefaultNamingStrategy и переопределить метод columnName для удаления первого подчеркивания (если оно есть).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...