Я пытаюсь отобразить базу данных из "Drupal" с помощью Hibernate и JPA, чтобы создать Java-слой для работы с данными.
В классе мне нужно добавить атрибут с именем "rank ", чтобы использовать его позже, но этот атрибут не существует в базе данных, поэтому я поместил аннотацию @Transient ...
Я использую метод set, чтобы установить значение для него, но позже значенияне правы (я не понимаю почему) Итак ... есть способ сделать это без изменения базы данных?
Большое спасибо
Редактировать:
Участник класса
@Entity
@Table( name = "biblio_contributor_data")
public class Contributors implements Comparable {
@Id
private int cid;
private String name;
private String firstname;
private String lastname;
private Member memberProfile;
@Trasient
private int rank;
Затем у меня есть несколько статей со списком участников в качестве атрибута.
И у меня есть список статей.Теперь я должен обновить их ранг и отсортировать список участников по рангу:
public static List<Article> sortByRankArticles(EntityManager em, List<Article> list){
for (Article article:list){
for(Contributors c:article.getAuthors()){
List<BiblioContributor> result = em.createQuery("from BiblioContributor where nid = "+article.getId() +" and id.cid = "+c.getCid()).getResultList();
c.setRank(result.get(0).getId().getRank());
System.out.println(c.getRank());
}
Collections.sort(list);
}
С этим system.out ... Я проверил, что значения верны, "0,1,2,3,4,5 "
Но когда я заканчиваю первое" для ", я сделал тест в том же методе, чтобы убедиться, что значения в порядке, но я получаю следующие значения: 0,0,1,2,2,3 которые не правы
for (Article article:list){
System.out.println("///////"+article.getId());
for(Contributors c:article.getAuthors()){
System.out.println("***"+c.getRank());
}
}