Vor kurzem begann ich Play Framework 2.3.8 zu verwenden.Update-Methode von Ebean funktioniert nicht in playframework
Allerdings Update des Modells ist ich in Schwierigkeiten ohne gute Arbeit.
Übrigens, speichern Methode funktioniert.
Das Update funktioniert nicht mit Code wie dem folgenden. (Es wird nicht auf die Datenbank beibehalten werden.)
User user = User.findByEmail(email);
user.remoteAddress = remoteAddress;
user.userAgent = userAgent;
user.latitude = latitude;
user.longitude = longitude;
user.lastLoginAt = new Date();
user.update();
jedoch der folgende Code wird wie vorgesehen.
User newUser = new User();
newUser.id = user.id;
newUser.remoteAddress = remoteAddress;
newUser.userAgent = userAgent;
newUser.latitude = latitude;
newUser.longitude = longitude;
newUser.lastLoginAt = new Date();
newUser.update();
Warum kann ich die ursprüngliche Instanz nicht aktualisieren?
Benutzerklasse ist wie folgt.
package models.entities;
import java.util.*;
import javax.persistence.*;
import com.avaje.ebean.annotation.*;
import play.db.ebean.*;
import play.db.ebean.Model.Finder;
import play.data.validation.Constraints.*;
import play.Logger;
import models.services.*;
/**
* @author satouf
*/
@Entity
@Table(name="user")
public class User extends Model {
@Id
public Long id;
@Column(nullable = false, columnDefinition = "varchar(32)")
public String userIdentifier;
@Column(nullable = false, columnDefinition = "varchar(255)")
public String loginId;
@Column(columnDefinition = "text")
public String loginPassword;
@Column(columnDefinition = "varchar(64)")
public String handleName;
@Email
@Column(nullable = false, columnDefinition = "varchar(255)")
public String email;
@Column(nullable = false, columnDefinition = "smallint default 0")
public short status;
@Column(columnDefinition = "varchar(64)")
public String lastRemoteAddress;
public String lastUserAgent;
public Date lastLoginAt;
public double latitude;
public double longitude;
@UpdatedTimestamp
public Date updatedAt;
@CreatedTimestamp
public Date createdAt;
public static Finder<Long, User> finder = new Finder<Long, User>(Long.class, User.class);
@Override
public String toString(){
return ("[id: " + id + ", userIdentifier: " + userIdentifier + ", loginId: " + loginId + ", handleName: "
+ handleName + ", latitude: " + latitude + ", longitude: " + longitude + "]");
}
}
Was ist die Datenbank-Engine? ist "user" kein reserviertes Wort darin? versuche, '@Table (name =" users ")' anstatt – biesior
zu verwenden Ich benutze mysql.'user 'ist, ich denke, ist kein eingeschränktes Wort In mysql. –
Erhalten Sie einen Fehler nach dem Ausgeben der Funktion 'user.update()'? Oder ist es einfach nur nicht in der Datenbank gespeichert? – jcreason