diff --git a/YACOSCore/ejbModule/org/yacos/core/article/Article.java b/YACOSCore/ejbModule/org/yacos/core/article/Article.java index 40152f0..0f82e78 100644 --- a/YACOSCore/ejbModule/org/yacos/core/article/Article.java +++ b/YACOSCore/ejbModule/org/yacos/core/article/Article.java @@ -78,7 +78,7 @@ public class Article implements Serializable { public Article(int reference, String title, String topic, String url_article, String mainAuthor, ArrayList secondaryAuthor, int state) { - this.id = reference; + //this.id = reference; this.title = title; this.topic = topic; this.URL_article = url_article; diff --git a/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java b/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java index 292e22d..517acb4 100644 --- a/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java +++ b/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java @@ -35,11 +35,13 @@ public class ArticleManagerBean implements IArticleManager, Serializable { return em.createQuery("from Article a ORDER BY a.title").getResultList(); } - public void updateArticle(Integer id, Article newArticle) { - removeArticle(getArticle(id)); + public void updateArticle(Article article) { + /*removeArticle(getArticle(id)); newArticle.setId(id); addArticle(newArticle); - em.flush(); + em.flush();*/ + em.merge(article); + } public void removeArticle(Article a) { @@ -68,6 +70,7 @@ public class ArticleManagerBean implements IArticleManager, Serializable { return (List) article.getReferees(); } + public Preference getArticlePreferenceForUser(Article article, String pcMemberLogin) { Query query = em.createQuery("SELECT p FROM Preference p WHERE p.article.id = :articleid AND p.pcMember.id = :pcmemberlogin"); @@ -98,6 +101,8 @@ public class ArticleManagerBean implements IArticleManager, Serializable { User pcMember = em.find(User.class, userLogin); preference.setPcMember(pcMember); preference.setPreference(preferenceValue); + //c'est mal !!! + // FIXME em.persist(preference); } } diff --git a/YACOSCore/ejbModule/org/yacos/core/article/IArticleManager.java b/YACOSCore/ejbModule/org/yacos/core/article/IArticleManager.java index bdc76c5..0d8327d 100644 --- a/YACOSCore/ejbModule/org/yacos/core/article/IArticleManager.java +++ b/YACOSCore/ejbModule/org/yacos/core/article/IArticleManager.java @@ -8,7 +8,7 @@ public interface IArticleManager { public Article getArticle(Integer id); public void addArticle(Article a); public void removeArticle(Article a); - public void updateArticle(Integer id, Article newArticle); + public void updateArticle(Article article); public List getArticlePCMembers(Article article); public List getArticleReferees(Article article); diff --git a/YACOSCore/ejbModule/org/yacos/core/article/Preference.java b/YACOSCore/ejbModule/org/yacos/core/article/Preference.java index 10d206e..ae2af50 100644 --- a/YACOSCore/ejbModule/org/yacos/core/article/Preference.java +++ b/YACOSCore/ejbModule/org/yacos/core/article/Preference.java @@ -9,6 +9,7 @@ import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; +import javax.persistence.IdClass; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; @@ -19,6 +20,7 @@ import org.yacos.core.users.User; * */ @Entity +@IdClass(PreferencePK.class) public class Preference implements Serializable { /** * @@ -28,35 +30,17 @@ public class Preference implements Serializable { * Id mandatory in every entity. */ @Id - @GeneratedValue(strategy=GenerationType.AUTO) - private Integer id; @ManyToOne(targetEntity=User.class) @JoinColumn(name="pcmember_id",nullable=false) private User pcMember; + + @Id @ManyToOne(targetEntity=Article.class) @JoinColumn(name="article_id",nullable=false) private Article article; - private String preference; - - /** - * @return the id - */ - @Id - @GeneratedValue(strategy=GenerationType.AUTO) - public Integer getId() { - return id; - } - /** - * @param id the id to set - */ - @Id - @GeneratedValue(strategy=GenerationType.AUTO) - public void setId(Integer id) { - this.id = id; - } - + /** * @return the pcMember */ @@ -96,3 +80,5 @@ public class Preference implements Serializable { this.preference = preference; } } + + diff --git a/YACOSCore/ejbModule/org/yacos/core/article/PreferencePK.java b/YACOSCore/ejbModule/org/yacos/core/article/PreferencePK.java new file mode 100644 index 0000000..9dc7985 --- /dev/null +++ b/YACOSCore/ejbModule/org/yacos/core/article/PreferencePK.java @@ -0,0 +1,27 @@ +package org.yacos.core.article; + + +import org.yacos.core.users.User; + +public class PreferencePK { + + private User pcMember; + + private Article article; + + public User getPcMember() { + return pcMember; + } + + public void setPcMember(User pcMember) { + this.pcMember = pcMember; + } + + public Article getArticle() { + return article; + } + + public void setArticle(Article article) { + this.article = article; + } +}