Play フレームワークの構成に問題が 1 つあります。新しいNotification
ものを挿入すると、エラーが発生しました。なぜこのエラーが発生したのかわかりません。クラスを拡張するためModel
、Play は行ごとに新しい ID を生成する必要があります。
何が問題なのか、またはこれを行うための他のより良い方法を教えていただければ、おそらく、 を拡張してGenericModel
、次のようにコメントされているコードを実行します。
// @Id
// @GeneratedValue(strategy = GenerationType.AUTO)
// public long id;
しかし、これを行うと、新しい行を挿入するにはどうすればよいですか?
どうもありがとう!!!!
エラーが見つかりました:
PersistenceException が発生しました:
org.hibernate.HibernateException
: データベースは、ネイティブに生成された ID 値を返しませんでした
これは/app/controllers/WSConfiguracion.java
次のとおりです。
if (cliente.valorBateria < filasConfiguracionClientes.get(i).limiteBateria) {
if (!estadoNotificacion.hayNotiBateria) {
// code below generated the error
Notificacion notificacion = new Notificacion(
filasConfiguracionClientes.get(i).imeiadmin,imei, "bateria baja"
).save();
estadoNotificacion.hayNotiBateria = true;
//notificacion.save();
estadoNotificacion.save();
renderText("NOTIFICA BATERIA");
}
} else {
...
}
これが私のモデルです。
package models;
import javax.persistence.Entity;
import play.db.jpa.Model;
@Entity
public class Notificacion extends Model {
//@Id
//@GeneratedValue(strategy = GenerationType.AUTO)
//public long id;
//@Id
public long imeiadmin;
//@Id
public long imeiclient;
public String detalleNotificacion;
public Notificacion(long imeiadmin, long imeiclient,String detalleNotificacion) {
this.imeiadmin = imeiadmin;
this.imeiclient = imeiclient;
this.detalleNotificacion = detalleNotificacion;
}
}