Maison >Java >javaDidacticiel >PlayFramework implémente complètement une APP (3)
1. Ajouter une classe Post
modèles de package ;
importer java.util.*;
importer javax.persistence.*;
importer play.db.jpa. *;
@Entity
@Table(name = "blog_post")
public class Post extends Model {
public String title;
public Date de publication à;
@Lob
contenu de la chaîne publique ;
@ManyToOne
auteur de l'utilisateur public ;
publication publique (auteur de l'utilisateur, titre de la chaîne, contenu de la chaîne) {
this.author = author;
this.title = title;
this.content = title;
}
}
@Identifiant Lob, le champ est un type de texte volumineux, @ManyToOne identifie que chaque publication ne peut correspondre qu'à un seul utilisateur, et qu'un utilisateur peut correspondre à plusieurs publications
2. Ajouter des cas de test
@Test
public void createPost () {
// Créez un nouvel utilisateur et enregistrez-le
User user = new User("bob@Gmail.com", "####", "Bob").save();
// Créer une nouvelle publication
new Post(user, "Mon premier message", "Bonjour tout le monde").save();
// Tester que la publication a été créé
assertEquals(1, Post.count());
// Récupère tous les messages créés par l'utilisateur
List
// Tests
assertEquals(1, posts.size());
Post firstPost = posts.get(0);
assertNotNull(firstPost);
assertEquals( user, firstPost.author);
assertEquals("Mon premier message", firstPost.title);
assertEquals("Bonjour tout le monde", firstPost.content);
assertNotNull(firstPost.postedAt);
}
3. Ajouter une classe de commentaire
@Entity
classe publique Le commentaire étend le modèle {
public String author ;
public Date de publication à;
@Lob
public String content;
@ManyToOne
public Post post;
public Comment(Publier le message, String author , String content) {
this.post = post;
this.author = author;
this.content = content;
this.postedAt = new Date();
}
}
4. Ajouter un cas de test
@Test
public void postComments() {
// Créer un nouvel utilisateur et enregistrez-le
User bob = new User("bob@gmail.com", "secret", "Bob").save();
// Créer un nouveau message
Post bobPost = new Post(bob, "Mon premier message", "Bonjour tout le monde").save();
// Publier un premier commentaire
new Comment(bobPost, "Jeff", "Joli post" ). save();
new Comment(bobPost, "Tom", "Je le savais !").save();
// Récupérer tous les commentaires
List
// Tests
assertEquals(2, bobPostComments.size());
Commentaire firstComment = bobPostComments.get (0 );
assertNotNull(firstComment);
assertEquals("Jeff", firstComment.author);
assertEquals("Beau post", firstComment.content);
assertNotNull(firstComment.postedAt) ;
Comment secondComment = bobPostComments.get(1);
assertNotNull(secondComment);
assertEquals("Tom", secondComment.author);
assertEquals("Je le savais !" , secondComment .content);
assertNotNull(secondComment.postedAt);
}
5. Ajouter un commentaire
@OneToMany( mappedBy= "post", cascade=CascadeType.ALL)
liste publique
public Post (auteur de l'utilisateur, titre de la chaîne, contenu de la chaîne) {
this.comments = new ArrayList< ;Comment> ;();
this.author = author;
this.title = title;
this.content = title;
this.postedAt = new Date();
}
6. Ajouter une méthode dans la classe Post
public Post addComment (String author, String content) {
Comment newComment = new Comment (this, author, content) .save();
this.comments.add(newComment);
this.save();
renvoie ceci;
}
7. Ajouter des cas de test
@Test
public void useTheCommentsRelation() {
// Créez un nouvel utilisateur et enregistrez-le
Utilisateur bob = new User("bob@gmail.com", "secret", "Bob" .save();
// Créer un nouveau message
Post bobPost = new Post(bob, "Mon premier message", "Bonjour tout le monde").save();
// Publier un premier commentaire
bobPost.addComment("Jeff", "Joli post");
bobPost.addComment("Tom", "Je le savais !");
/ / Compter les choses
assertEquals(1, User.count());
assertEquals(1, Post.count());
assertEquals(2, Comment.count());
// Récupérer le message de Bob
bobPost = Post.find("byAuthor", bob).first();
assertNotNull(bobPost);
// Accédez aux commentaires
assertEquals( 2, bobPost.comments.size());
assertEquals("Jeff", bobPost.comments.get(0).author);
// Supprimer le message
bobPost.delete( );
// Vérifiez que tous les commentaires ont été supprimés
assertEquals(1, User.count());
assertEquals(0, Post.count());
assertEquals( 0, Comment.count());
}
运行Test,如有异常会出现下方提示
PlayFramework et APP(三)的内容,更多相关内容请关注PHP中文网(www.php.cn) !