在做的东西是一个组合主键,日期跟一个指标ID合起来的主键
如果是一个主键的时候都是通过来查数据库里边的主键是否存在来判断这个对象是否存在来执行新建或者是修改操作,但这个地方如果是组合主键的话判断应该怎么写,或者是有什么别的方法么?     /**
 * 添加,修改到数据库
 */
public TableMessages submitMeasureDeviceBean(ArrayList beans){
TableMessages msgs = new TableMessages();
String msgHeader = "计量标准装置数据提交";
Transaction transaction = null;
try{
log.debug("// Enter submitMeasureDeviceBean : ");
if(beans == null){
msgs.addNullBeansMsg();
return msgs;
}
openSession();
transaction = session.beginTransaction();
for(int i=0;i<beans.size();i++)
{
MeasureDeviceBean bean=(MeasureDeviceBean) beans.get(i);
if(bean == null)
continue;
Integer selfId = bean.getDeviceId();
if(selfId == null || selfId.intValue() < 0){
TableMessageBean msgBean = doSave(bean);
msgs.addMsg(msgBean);
log.debug("// Enter selfId : "+selfId);
}
if(selfId != null && selfId.intValue() > 0){
TableMessageBean msgBean = doUpdate(bean);
msgs.addMsg(msgBean);
log.debug("// update");
}
}
transaction.commit();
log.debug("// End submitMeasureDeviceBean");
return msgs;
}catch(Exception ex){
transaction.rollback();
ex.printStackTrace();
msgs.addMsg(TableMessageBean.ERROR, msgHeader, "添加或修改计量标准装置失败");
return msgs;
}
}这里是只有添加或者修改的语句,经过判断之后,doSave方法或者doUpdate方法
这时deviceId就是主键,设备ID,MeasureDeviceBean是对象,标准设备接下来是组合主键的,另一个模块:
标准数据StandardData的bean的字段设置:
private String dateYM; // 年月
private String mediumCode; // 介质编码
数据库NyzdBzsj(就是这个StandardData的数据,取的拼音首字母):
     /**
 * Constructor for primary key
 */
public NyzdBzsj (com.bjcx.emc.diagnosis.NyzdBzsjPK id) {
super(id);
} public static NyzdBzsj load(NyzdBzsjPK pk) {
// TODO Auto-generated method stub
return null;
}NyzdBzsjPK extends BaseNyzdBzsjPK :
      public abstract class BaseNyzdBzsjPK implements Serializable { protected int hashCode = Integer.MIN_VALUE; private java.lang.String vBzny;
private java.lang.String vJzbm;
public BaseNyzdBzsjPK () {}

public BaseNyzdBzsjPK (
java.lang.String vBzny,
java.lang.String vJzbm) { this.setVBzny(vBzny);
this.setVJzbm(vJzbm);
}
天,我也觉得我问的这问题太不好描述清楚了,希望大神能给指教一下j2ee 组合主键