"Pagina"と呼ばれるこのエンティティクラスがあり、エンティティの変更に基づいてデータベース内のエントリを更新したいとします。これは動作していません。エラーは出ませんが、dbは変更されません。別のクラスにおいてjpa/hibernateを使用したエンティティ更新の問題
@Entity
@Table(name = "PAGINA")
@NamedQueries({@NamedQuery(name = "Pagina.findAll", query = "SELECT p FROM Pagina p"),
@NamedQuery(name = "Pagina.findHashByURL", query= "SELECT p.chash FROM Pagina p WHERE p.url = :url"),
@NamedQuery(name = "Pagina.findTimestampByURL", query= "SELECT p.timestamp FROM Pagina p WHERE p.url = :url"),
@NamedQuery(name = "Pagina.findByUrl", query = "SELECT p FROM Pagina p WHERE p.url = :url"),
@NamedQuery(name = "Pagina.findByProfondita", query = "SELECT p FROM Pagina p WHERE p.profondita = :profondita"),
@NamedQuery(name = "Pagina.findByIntervallo", query = "SELECT p FROM Pagina p WHERE p.intervallo = :intervallo"),
@NamedQuery(name = "Pagina.findByTimestamp", query = "SELECT p FROM Pagina p WHERE p.timestamp = :timestamp"),
@NamedQuery(name="Pagina.findAllURL", query="SELECT p.url FROM Pagina p"),
@NamedQuery(name="Pagina.findDelayByURL", query="SELECT p.intervallo FROM Pagina p WHERE p.url = :url"),
@NamedQuery(name = "Pagina.findByUpdated", query = "SELECT p FROM Pagina p WHERE p.updated = :updated")})
public class Pagina implements Serializable, Delayed{
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "URL")
private String url;
@Column(name = "PROFONDITA")
private Integer profondita;
@Column(name = "INTERVALLO")
private Integer intervallo;
@Lob
@Column(name = "CHASH")
private String chash;
@Column(name = "TIMESTAMP")
private Integer timestamp;
@Column(name = "UPDATED")
private Boolean updated;
[cut]
Iは、エンティティ上で動作メソッドを含むクラスで定義されたメソッドを使用して、データベース(MySQLの)に格納されたオブジェクトを取り出します。このメソッドは、「findAll」というクエリを使用します。あなたがコード内で見ることができるように、私はこの方法を使用してい
public List<Pagina> findAll(){
EntityManagerFactory emf = javax.persistence.Persistence.createEntityManagerFactory("CrawlerPU");
EntityManager em = emf.createEntityManager();
List o = (List) em.createNamedQuery("Pagina.findAll").getResultList();
return o;
}
:
PaginaMethods p = new PaginaMethods();
List<Pagina> l = p.findAll();
while (it.hasNext()) {
Pagina s = (Pagina) it.next();
s.setUpdated(Boolean.TRUE);
を私はデシベルを見れば、何もこの操作の後に変更されていないメソッドのコードは次のようです。私のpersistence.xmlに ""というエントリがあります 私を助けることができますか?私はこれを解決する方法を知らない...私は必要に応じて変更することができます。
私はあなたと同じ問題を抱えています。あなたの問題解決方法を教えてください。ありがとうございます –