opa, eu to tentando fazer um exemplo simples usando jpa, mas não tô conseguindo rodar o programa… já refiz a app várias vezes e nunca dah certo…
to usando mysql, toplink;
se alguém tiver alguma dica será bem vinda
aí vai o código:
// essa é a classe Client q vai persistir 2 objetos no banco
package bar.client;
import bar.model.Sushi;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
BaseDao<Sushi> dao = new BaseDao<Sushi>();
Sushi hot = new Sushi();
hot.setName("Hot Filadelfia");
Sushi fil = new Sushi();
fil.setName("Filadelfia");
dao.create(hot);
dao.create(fil);
}
}
// essa é a classe BaseDao q vai executar a persistẽncia
package bar.client;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class BaseDao<T> {
private static EntityManagerFactory emf;
private EntityManager em;
public BaseDao() {
emf = Persistence.createEntityManagerFactory("pu1");
em = emf.createEntityManager();
}
public boolean create(T obj) {
em.getTransaction().begin();
try {
em.persist(obj);
em.getTransaction().commit();
return true;
}
catch(Exception e) {
e.printStackTrace();
em.getTransaction().rollback();
return false;
}
}
}
//Essa é a de persistência Sushi
package bar.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Sushi {
@Id
@Column(insertable = false)
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
// esse é o arquivo de persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="pu1">
<provider>
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
</provider>
<class>bar.model.Sushi</class>
<properties>
<property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="toplink.jdbc.url" value="jdbc:mysql://3306/sushibardb" />
<property name="toplink.jdbc.user" value="root" />
<property name="toplink.jdbc.password" value="tricolor" />
<property name="toplink.logging.level" value="INFO" />
</properties>
</persistence-unit>
</persistence>
// esse é o erro:
[TopLink Info]: 2009.07.05 08:46:46.522–ServerSession(2730814)–TopLink, version: Oracle TopLink Essentials - 2.0 (Build b41-beta2 (03/30/2007))
Exception in thread “main” Local Exception Stack:
Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0 (Build b41-beta2 (03/30/2007))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: java.net.NoRouteToHostException: No route to host: connect
STACKTRACE:
java.net.SocketException: java.net.NoRouteToHostException: No route to host: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.(MysqlIO.java:276)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2666)
at com.mysql.jdbc.Connection.(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:154)
at oracle.toplink.essentials.sessions.DefaultConnector.connect(DefaultConnector.java:85)
at oracle.toplink.essentials.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:170)
at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:537)
at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:206)
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:212)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:78)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:111)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:105)
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:76)
at bar.client.BaseDao.(BaseDao.java:13)
at bar.client.Client.main(Client.java:12)