Ajout du forum

This commit is contained in:
Frederic Debuire
2008-02-24 10:27:58 +00:00
parent 0f4e1c1fa0
commit 271b1761bb
3 changed files with 193 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
package org.yacos.core.forum;
import java.util.List;
import javax.ejb.Remote;
@Remote
public interface IMessageManager {
public Message addMessage(String message, String title, Integer articleId, String userLogin);
public List<Message> getMessagesForArticle(Integer articleId);
}

View File

@@ -0,0 +1,116 @@
package org.yacos.core.forum;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.yacos.core.article.Article;
import org.yacos.core.users.User;
@Entity
public class Message implements Serializable {
/**
*
*/
private static final long serialVersionUID = -8960098137182930392L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
private String message;
private String title;
@Temporal(TemporalType.DATE)
private Date dateMessage;
@ManyToOne(targetEntity=Article.class)
@JoinColumn(name="article_id",nullable=false)
private Article article;
@ManyToOne(targetEntity=User.class)
@JoinColumn(name="user_id",nullable=false)
private User user;
public Message() {}
public Message(Integer id, String message, String title, Article article, User user) {
this.id = id;
this.message = message;
this.title = title;
this.dateMessage = new Date();
this.article = article;
this.user = user;
}
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Integer getId() {
return id;
}
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public void setId(Integer id) {
this.id = id;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Temporal(TemporalType.DATE)
public Date getDateMessage() {
return dateMessage;
}
@Temporal(TemporalType.DATE)
public void setDateMessage(Date dateMessage) {
this.dateMessage = dateMessage;
}
@ManyToOne(targetEntity=Article.class)
@JoinColumn(name="article_id",nullable=false)
public Article getArticle() {
return article;
}
@ManyToOne(targetEntity=Article.class)
@JoinColumn(name="article_id",nullable=false)
public void setArticle(Article article) {
this.article = article;
}
@ManyToOne(targetEntity=User.class)
@JoinColumn(name="user_id",nullable=false)
public User getUser() {
return user;
}
@ManyToOne(targetEntity=User.class)
@JoinColumn(name="user_id",nullable=false)
public void setUser(User user) {
this.user = user;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}

View File

@@ -0,0 +1,64 @@
package org.yacos.core.forum;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.transaction.UserTransaction;
import org.yacos.core.article.Article;
import org.yacos.core.users.User;
@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class MessageManagerBean implements IMessageManager, Serializable {
/**
*
*/
private static final long serialVersionUID = -2669902949630827480L;
@PersistenceContext
EntityManager em;
@Resource
UserTransaction ut;
public Message addMessage(String message, String title, Integer articleId, String userLogin) {
try {
ut.begin();
Message m = new Message();
m.setMessage(message);
m.setTitle(title);
m.setDateMessage(new Date());
User user = em.find(User.class, userLogin);
m.setUser(user);
Article a = em.find(Article.class, articleId);
m.setArticle(a);
em.persist(m);
ut.commit();
return m;
} catch (Exception e) {
try {
ut.rollback();
e.printStackTrace();
} catch (Exception e1) {
e1.printStackTrace();
}
}
return null;
}
@SuppressWarnings("unchecked")
public List<Message> getMessagesForArticle(Integer articleId) {
Article a = em.find(Article.class, articleId);
Query query = em.createQuery("from Message m WHERE article = ? ORDER BY m.dateMessage");
query.setParameter(1, a);
return query.getResultList();
}
}