私は、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