Моя операция удаления не удаляет перекодировку в базе данных.Hibernate Удалить Операция не обновляется MySql
Мои объектные классы:
@Entity
@Table(name= "User")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id")
private int id;
private String userName,password,type,fullName;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fName) {
this.fullName = fName;
}
@Column(name = "USER_ID")
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
@Entity
@Table(name= "Cart")
public class Cart {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id")
private int id;
private String userName;
private String itemSkus;
private String itemsQuantity;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "USER_ID")
public String getUserName() {
return userName;
}
public void setUserName(String uName) {
this.userName = uName;
}
public String getItems(){
return this.itemSkus;
}
public void setItems(String items){
this.itemSkus=items;
}
public String getItemsQuantity(){
return this.itemsQuantity;
}
public void setItemsQuantity(String itemsQ){
this.itemsQuantity=itemsQ;
}
}
Метод класса DAO является для корзинка, как показано ниже:
public int deleteCart(String userID){
Session currentSession=sessionObject.getSession();
//String query="from Cart Where userName :uName";
String query="DELETE FROM Cart where userName = :uName";
Query queryResult = currentSession.createQuery(query);
queryResult.setParameter("uName", userID);
int result = queryResult.executeUpdate();
System.out.println("Cart delete result "+result);
return result;
}
Я попытался запустить запрос в MySQL верстаке и таблицы обновляется красиво. Только спящий режим не обновляется.
В итоге у меня есть количество результатов в результатах запроса обновления.
владелец вопрос говорит: _with спящий режим его не updating._ уведомление: 'Flush()' будет синхронизировать базу данных с текущим состоянием объекта/объектов, удерживаемых в памяти, но 'она не совершает transaction' (зависит от режима вспышки). но 'commit()' обновит базу данных постоянным. он может использовать вспышку после обновления и в любое время, когда захочет – jfun
Farhang Amary 'Ferhęg'. Режим Hibernate по умолчанию будет вымывать на: + перед некоторыми выполнениями запросов, + от org.hibernate.Transaction.commit() + от Session.flush() Это отвечает на вопрос владельца - «спящий режим его не обновляется» Ссылки: http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/objectstate.html#objectstate-flushing – CKuharski
Отлично, поэтому внимательно прочитайте ссылку и выполните несколько тестов, после чего вы получите следующий результат: ' когда trcelmit() вызывается в FlushMode по умолчанию, currentSession.flush() будет выполняться неявно перед выполнением tr.commit(). «Удачи. – jfun