Maison > Java > javaDidacticiel > PlayFramework implémente complètement une APP (3)

PlayFramework implémente complètement une APP (3)

黄舟
Libérer: 2016-12-23 16:37:51
original
1260 Les gens l'ont consulté

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 posts = Post.find("byAuthor", user).fetch () ;

// 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 Commentaire. find("byPost", bobPost).fetch();

// 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 commentaires ;

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 implémente complètement une APP (3)

 PlayFramework et APP(三)的内容,更多相关内容请关注PHP中文网(www.php.cn) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal