Java 如何为“创造条件”;冬眠“;检查数据库
我做了一个程序,如果数据库字段中的值不相同,它将保存数据 如果数据库字段中有相同的值,则会更新数据 我一直想让“hibernate”可以检查数据库中的值 任何帮助都是我的荣幸 提前谢谢 现在我可以给hibernate设置条件来检查数据是否存在。。。当条件为真时,此代码工作,但当条件为假时,我得到一些错误 更新我的代码Java 如何为“创造条件”;冬眠“;检查数据库,java,hibernate,Java,Hibernate,我做了一个程序,如果数据库字段中的值不相同,它将保存数据 如果数据库字段中有相同的值,则会更新数据 我一直想让“hibernate”可以检查数据库中的值 任何帮助都是我的荣幸 提前谢谢 现在我可以给hibernate设置条件来检查数据是否存在。。。当条件为真时,此代码工作,但当条件为假时,我得到一些错误 更新我的代码 Query query = session.createQuery("from CoreService where MODULE_NAME= :lolo1
Query query = session.createQuery("from CoreService where MODULE_NAME= :lolo1 and OBJECT_NAME= :lolo2 and SYSTEM_ID= :lolo3 and LOG_DATE= :lolo4");
query.setParameter("lolo1", module);
query.setParameter("lolo2", object);
query.setParameter("lolo3", system_id);
query.setParameter("lolo4", log_date);
@SuppressWarnings("unchecked")
List<CoreService> result = query.list();
if(result.isEmpty()){
System.out.println("LOLOH");
CoreService data = new CoreService();
data.setMODULE_NAME(module);
data.setCATEGORY("SYSTEMID");
data.setSYSTEM_ID(system_id);
data.setCOUNTER_SYSTEM(1);
data.setOBJECT_NAME(object);
data.setCOUNTER_SERVICE(1);
data.setLOG_DATE(log_date);
data.setUPDATE_LOG(update_log);
session.beginTransaction();
session.save(data);
session.getTransaction().commit();
}else{
System.out.println("LELEH");
CoreService data = new CoreService();
data.setCATEGORY("SYSTEMID");
data.setCOUNTER_SYSTEM(2);
data.setCOUNTER_SERVICE(2);
session.beginTransaction();
session.update(data);
session.getTransaction().commit();
}
这是我的班级模型(注意:我的ID是自动递增的)
在Else块中,您必须从result获取数据,然后设置所需的值
else{
System.out.println("LELEH");
CoreService data = (CoreService )result.get(0);
data.setCATEGORY("SYSTEMID");
data.setCOUNTER_SYSTEM(2);
data.setCOUNTER_SERVICE(2);
session.beginTransaction();
session.update(data);
session.getTransaction().commit();
}
请把你的代码贴在这里!!你是怎么做到的?有什么问题吗?@Mohsinazem对不起,伙计,我忘了发代码了@Frederic我一直在尝试制作
列表
,但我无法让hibernate检查数据库是否有相同的值你应该发布最小的代码来重现问题,&不是您正在处理的一堆代码&与问题无关。您的id生成策略不正确,因为异常情况是给定对象的标识符为空。你能发布你的实体类和数据库定义吗?
package id.co.bni.coreservice.model;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@Table(name = "coreservice")
public class CoreService {
private Integer ID;
private String MODULE_NAME;
private String CATEGORY;
private String SYSTEM_ID;
private Integer COUNTER_SYSTEM;
private String OBJECT_NAME;
private Integer COUNTER_SERVICE;
private Date LOG_DATE;
private Date UPDATE_LOG;
/**
* @return
*/
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="ID", unique=true, nullable=false)
public Integer getID() {
return ID;
}
public void setID(Integer ID) {
this.ID = ID;
}
@Column(name = "MODULE_NAME")
public String getMODULE_NAME() {
return MODULE_NAME;
}
public void setMODULE_NAME(String MODULE_NAME) {
this.MODULE_NAME = MODULE_NAME;
}
@Column(name = "CATEGORY")
public String getCATEGORY() {
return CATEGORY;
}
public void setCATEGORY(String CATEGORY) {
this.CATEGORY = CATEGORY;
}
@Column(name = "SYSTEM_ID")
public String getSYSTEM_ID() {
return SYSTEM_ID;
}
public void setSYSTEM_ID(String SYSTEM_ID) {
this.SYSTEM_ID = SYSTEM_ID;
}
@Column(name = "COUNTER_SYSTEM")
public Integer getCOUNTER_SYSTEM() {
return COUNTER_SYSTEM;
}
public void setCOUNTER_SYSTEM(Integer COUNTER_SYSTEM) {
this.COUNTER_SYSTEM = COUNTER_SYSTEM;
}
@Column(name = "OBJECT_NAME")
public String getOBJECT_NAME() {
return OBJECT_NAME;
}
public void setOBJECT_NAME(String OBJECT_NAME) {
this.OBJECT_NAME = OBJECT_NAME;
}
@Column(name = "COUNTER_SERVICE")
public Integer getCOUNTER_SERVICE() {
return COUNTER_SERVICE;
}
public void setCOUNTER_SERVICE(Integer COUNTER_SERVICE) {
this.COUNTER_SERVICE = COUNTER_SERVICE;
}
@Temporal(TemporalType.DATE)
@Column(name = "LOG_DATE")
public Date getLOG_DATE() {
return LOG_DATE;
}
public void setLOG_DATE(Date LOG_DATE) {
this.LOG_DATE = LOG_DATE;
}
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "UPDATE_LOG")
public Date getUPDATE_LOG() {
return UPDATE_LOG;
}
public void setUPDATE_LOG(Date UPDATE_LOG) {
this.UPDATE_LOG = UPDATE_LOG;
}
/**
* @param args
*/
}
else{
System.out.println("LELEH");
CoreService data = (CoreService )result.get(0);
data.setCATEGORY("SYSTEMID");
data.setCOUNTER_SYSTEM(2);
data.setCOUNTER_SERVICE(2);
session.beginTransaction();
session.update(data);
session.getTransaction().commit();
}