Использование аннотации @Transient для постоянного хранения - PullRequest
0 голосов
/ 03 мая 2018

У меня есть объект, который содержит несколько атрибутов. одним из атрибутов моего объекта является другой объект, содержащий ArrayList. Иерархия выглядит следующим образом.

Object - Organization
(
String orgId
String orgName
String parentOrgName

Organization.Workers workers  //Object of Worker list...

)

Я хочу сохранить объект организации в imdb (в базе данных памяти). Я использую сеанс Hibernate для подключения к базе данных.

Я уже установил объект Worker как Transient, как этот.

@Transient
protected Organization.Workers workers;

Когда я получаю Организацию, каждый раз, когда я получаю этот рабочий объект как ноль. Пожалуйста, расскажите мне об использовании аннотации @transient, а также расскажите о том, как хранить вложенные объекты в imdb с помощью hibernate-сессий в java spring.

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Аннотация @Transient используется, когда вам нужно определенное поле для определенной работы, но вы не хотите, чтобы это поле сохранялось в базе данных.

Здесь, как ваш вопрос сформулирован, есть организация и работники, поэтому отношения - это отношения @OneToMany.

В организационном классе:

@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="organization")
private List<Workers> workers = new ArrayList<>();

В классе рабочих:

@ManyToOne
@JoinColumn(name="id", unique=true)
private Organization organization;

Здесь в одной организации может быть много работников, а один работник может работать только в одной организации. вот оно. : D

0 голосов
/ 03 мая 2018

@Transient аннотация используется для указания JPA не сохранять поле в базе данных. Кроме того, всякий раз, когда вы имеете дело с композицией, выясните отношения между ними.

В вышеприведенном примере отношения кажутся однозначными, поскольку в одной организации может быть много работников, но один работник может работать одновременно только в одной организации.

Вам нужно будет сообщить JPA об этих отношениях, используя аннотацию @OneToMany.

Оформите эту официальную ссылку Hibernate о том, как ее использовать.

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