2012-03-19 2 views
4

Я начинаю использовать JPA, и я всегда путаюсь с термином сущностей и их использованием, я читал много, но я все еще не совсем понял. Я прочитал документацию Oracle, но на самом деле это не объясняет его роль в транзакции.Что такое объекты JPA?

Что такое JPA enities? действительно ли они хранят данные для каждой строки, я имею в виду, они хранят экземпляры, содержащие данные строки? или они просто отображают таблицы db, а затем вставляют и удаляют в них?

, например, если я использую это:

entity.setUserName("michel"); 

Затем сохраняющимся его, затем изменить имя пользователя и persisitig его снова (т.е. присоединение к нему)

Изменился ли ранее введенное имя пользователя? или он создает новую строку в db?

ответ

13

Сущность - это примерно то же самое, что и экземпляр класса, когда вы думаете о перспективе кода или строке в таблице (в основном), когда думаете о перспективе базы данных.

Таким образом, это по существу постоянный/сохраняемый экземпляр класса. Изменение значений на нем работает так же, как изменение значений для любого другого экземпляра класса. Разница в том, что вы можете сохранить эти изменения и, в общем, текущее состояние экземпляра класса (объекта) будет перезаписывать значения, которые строка для этого экземпляра (объекта) имела в базе данных, на основе первичного ключа в базе данных, соответствующей «id» или аналогичное поле в экземпляре класса (entity).

Есть, конечно, исключения из этого поведения, но это, в общем, верно.

0

Это модель. Это объект домена, который можно сохранить. Не передумай. Сродни модели Rails. И помните, что модели (в этой парадигме) изменяемы!