2009-11-13 4 views
2

У меня сложилось впечатление, что если мы используем постоянные поля, то нет необходимости в методах getter, поскольку диспетчер объектов напрямую ссылается на переменные экземпляра. Однако, когда я удалил методы getter и setter из объекта, чтобы иметь постоянные поля, значения для соответствующей переменной экземпляра не были извлечены из базы данных!java beans: разница между постоянным полем и постоянным свойством?

Означает ли это, что у нас должны быть методы getter и setter, хотя у нас есть постоянные поля?

+1

Вы должны голосовать на ответы, которые вы любите, и выбрать лучший ответ, если какие-либо помог вам с вопросом –

ответ

3

Если класс сущности использует постоянство, поля Persistence обращаются к переменным экземпляра класса сущности непосредственно во время выполнения.

В то время как свойство persistence содержит метод получения и сеттера для каждого свойства.

Что вы сказали, должно было работать в спящем режиме.

A link about it

0

Вы не упомянули, какую реализацию JPA вы используете. Hibernate, безусловно, позволяет вам напрямую обращаться к полям. Однако это не значение по умолчанию, поэтому вам нужно указать это поведение в файлах сопоставления с полем access =. (с основанной на аннотации конфигурацией, я бы предположил, что вам просто нужно аннотировать поля напрямую ...)

0

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

+0

я использую оракул TopLink. – abracadabra