У меня есть эта сущность:JPA, @Transient поле и отображение Native Query
@Entity
@Table(name = "entry")
@SqlResultSetMapping(
name = "viewEntry",
entities =
@EntityResult(entityClass = ViewEntry.class,
fields = {
@FieldResult(name="id", column = "id"),
@FieldResult(name="guid", column = "guid"),
@FieldResult(name="link", column = "link"),
@FieldResult(name="descr", column = "descr"),
@FieldResult(name="pubDate", column = "pub_date"),
@FieldResult(name="read", column = "my_read")
}
)
)
public class ViewEntry implements Serializable {
@Id
private Integer id;
private String guid;
private String link;
private String descr;
private Date pubDate;
@Transient
private Boolean read;
}
read
Поле проживает в другой таблице, поэтому я сделал это преходяще, чтобы предотвратить ошибки отображения JPA. Для извлечения содержимого субъекта, я хочу использовать родной запрос, который выглядит следующим образом:
select id,guid,link,descr,pub_date,feed_id,user_id,is_read as my_read from entry join user_to_entry ....
-- skipped dynamic part of query
Проблема заключается в том, что я понятия не имею, как отобразить собственные запросы к моей сущности. В частности, я не знаю, будет ли поле @Transient игнорироваться EntityManager. Помоги пожалуйста.
Может быть опечаткой, но вы в своем сопоставлении указываете столбец как 'my_read', но в запросе он называется' is_read'. –
Насколько я понимаю, параметр 'column' - это имя псевдонима в наборе результатов, параметр' name' - это имя поля. Исправьте меня, если я ошибаюсь –
Вы правы, это просто не было 'как my_read' в исходном сообщении. –