我正試圖用Hibernate和JPA映射「Drupal」中的數據庫來構建Java數據庫。JPA註解的問題@Transient
在一類,我需要添加一個屬性,稱爲「等級」以後使用它,但屬性不存在於數據庫中,所以我把@Transient批註......
我用設置方法來給它一個值,但後來,這些值是錯誤的(我不明白爲什麼)所以...有沒有辦法做到這一點,而無需修改數據庫?
非常感謝
編輯:
類貢獻者
@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「
但是當我完成第一個」for「時,我用相同的方法做了一個測試,以證明這些值是否正常,但是我得到以下值: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());
}
}
你做得很好,發佈一些代碼,看看是否有相關數據。 – ssedano
謝謝你們的回覆,我會把我的代碼,我沒有這樣做,因爲我從drupal映射數據庫,它是奇怪的,因爲地獄... – dragonalvaro
你可以計算一個單一的選擇? – ssedano