si si possono riunire le discussioni così si evita confusione
Allora ti allego le classi:
1)Questo è OggettoFacade
codice:
package beans;
import entità.Oggetto;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Stateless
public class OggettoFacade implements OggettoFacadeLocal {
@PersistenceContext(unitName = "DB-ejbPU")
private EntityManager em;
protected EntityManager getEntityManager() {
return em;
}
@Override
public boolean inserisci(Oggetto oggetto) {
try {
em.persist(oggetto);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public void persist(Object object) {
em.persist(object);
}
@Override
public boolean rimuovi(Oggetto oggetto) {
try {
em.remove(em.merge(oggetto));
em.flush();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
@Override
public Oggetto find(Object id) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int count() {
throw new UnsupportedOperationException("Not supported yet.");
}
}
e questa è l'interfaccia
[CODE]
package beans;
import entità.Oggetto;
import java.util.List;
import javax.ejb.Local;
@Local
public interface OggettoFacadeLocal {
boolean inserisci(Oggetto oggetto);
boolean rimuovi(Oggetto oggetto);
Oggetto find(Object id);
int count();
}
[\CODE]
2)Questa è la classe entità dal database
[CODE]
package entità;
import java.io.Serializable;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
@Entity
@Table(name = "oggetto")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Oggetto.findAll", query = "SELECT o FROM Oggetto o"),
@NamedQuery(name = "Oggetto.findById", query = "SELECT o FROM Oggetto o WHERE o.id = :id")})
public class Oggetto implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@NotNull
@Column(name = "id")
private Integer id;
@Basic(optional = false)
@NotNull
@Lob
@Size(min = 1, max = 65535)
@Column(name = "nome")
private String nome;
public Oggetto() {
}
public Oggetto(String nome) {
this.nome = nome;
}
public Oggetto(Integer id, String nome) {
this.id = id;
this.nome = nome;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Oggetto)) {
return false;
}
Oggetto other = (Oggetto) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "entit\u00e0.Oggetto[ id=" + id + " ]";
}
}
[\CODE]
3)Questa è la servlet dal WAR
codice:
package servlet;
import....
public class AggiungiServ extends HttpServlet {
@EJB
private OggettoFacadeLocal ogg;
protected void processRequest(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html"); // invia una pagina html
// Preleva lo stream dalla response
PrintWriter toClient = res.getWriter();
// prende il parametro "username" dalla request
String ogget = req.getParameter("oggetto");
Oggetto o=new Oggetto();
o.setNome(ogget);
boolean b=ogg.inserisci(o);
// Prepara la pagina html di risposta
String html = (
"<html>" +
"<title>AggiungiServ</title>" +
"<body>" +
"<font size=4>Oggetto '" + ogget + "' aggiunto con successo! </font>"+ b +
"</body>"+
"</html>");
toClient.println( html );
toClient.close();
}
4) La persistence unit
codice:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 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/persisten...stence_2_0.xsd">
<persistence-unit name="DB-ejbPU" transaction-type="JTA">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<jta-data-source>Carrello</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<validation-mode>CALLBACK</validation-mode>
<properties>
<property name="toplink.cache.shared.Oggetto" value="false"/>
<property name="eclipselink.ddl-generation" value="create-tables"/>
<property name="toplink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>