Problemas com código do Livro Manning Java persistence with Hibernate

Olá pessoal,

Bem, comprei o livro e to lendo. Mas tem duas coisas estranhas. O autor dá o seguinte código da classe a ser persistida:

package hello;
  
public class Message {
  
     private Long id;
     Message text
     private String text;
     private Message nextMessage;
  
   Message() {}
     public Message(String text) {
         this.text = text;
     }
     public Long getId() {
         return id;
     }
     private void setId(Long id) {
         this.id = id;
     }
     public String getText() {
         return text;
     }
     public void setText(String text) {
         this.text = text;
     }
      public Message getNextMessage() {
          return nextMessage;
      }
      public void setNextMessage(Message nextMessage) {
          this.nextMessage = nextMessage;
      }
}

Beleza, mas agora olhem o código para inserção no BD, de acordo com o autor:

package hello;
import java.util.*;
import org.hibernate.*;
import persistence.*;
public class HelloWorld {
    public static void main(String[] args) {
        Session session = HibernateUtil.getSessionFactory().openSession();
        Transaction tx = session.beginTransaction();
        Message message = new Message("Hello World!!!");
        Long msgId = (Long) session.save(message);
        tx.commit();
        session.close();

        Session newSession = HibernateUtil.getSessionFactory().openSession();
        Transaction newTransaction = newSession.beginTransaction();
        List messages = newSession.createQuery("from Message m order by m.text asc").list();
        System.out.println( messages.size() +" message(s) found:" );

    for ( Iterator iter = messages.iterator();
          iter.hasNext(); ) {
        Message loadedMsg = (Message) iter.next();
        System.out.println( loadedMsg.getText() );
    }
    newTransaction.commit();
    newSession.close();

    HibernateUtil.shutdown();
  }
}

Ok, mas se voces forem analisar o código…:

  1. O eclipse não consegue achar o import persistence.*;

  2. O eclipse não consegue achar a classe HibernateUtil.

  3. Se vcs forem olhar, de acordo com o autor, o método da classe Message deveria ter um construtor que recebesse como parâmetro um String, mas o construtor dele é o defaultzão! E está desse jeito MESMO no livro. Tanto que ele passa uma string pro construtor, mas dá erro.

Mas o estranho é que o autor dá exatamente esse código.

O que está acontecendo? Eu estou errando em algo?

Veja bem o codigo que vc colocou, la ha um contrutor com argumentos sim.

  public Message(String text) {  
          this.text = text;  
      }

O codigo do livro voce pode pegar em http://caveatemptor.hibernate.org/

Rafael

Valeu Rafael, obrigadão. Você estava certo. Não fiquei atento ali.

Grato!!! mas e sobre o HibernateUtil, voce tem alguma luz?

[]'s

O codigo tem no livro, e no link que eu passei na mensagem anterior.

Rafael