自己先顶一下,随便改改错.
A.java:
import java.io.Serializable;public class A implements Serializable {
private AKey id;
private String list; <--- private int list; 改错
.... //get,set方法省略
}
A.java:
import java.io.Serializable;public class A implements Serializable {
private AKey id;
private String list; <--- private int list; 改错
.... //get,set方法省略
}
解决方案 »
- ssh 上没有见过这个错误 请高手讲解一下。在线等待~!
- Spring与Hibernate的优点
- struts2报ognl.InappropriateExpressionException: Inappropriate OGNL expression 1
- 求解ssh2中,保留页面数据的思路
- java.rmi.UnicastRemoteObject和javax.rmi.PortableRemoteObject的区别
- 关于EJBObject
- 我在Session Bean中调用实体Bean却报错,急!
- 谁有websphere5.0企业版 for linux的安装盘?请与13316012898联系!酬谢!急!!!
- EJB事物回滚问题(在线等待)
- 如何判断linux主机是否用了struts?
- 注册用户代码有何错误(这个帖子的给分将在真是很奇怪???里给出)
- 真是很奇怪???
Session session = factory.openSession();
Transaction insertentities = session.beginTransaction();
A a = new A();
AKey ak = new AKey();
ak.setId(1);
ak.setName("id");
a.setId(ak);
a.setList("test");
session.save(a);
session.flush();
session.clear();
Session session = factory.openSession();
Transaction insertentities = session.beginTransaction();
A a = new A();
AKey ak = new AKey();
ak.setId(1);
ak.setName("id");
a.setId(ak);
a.setList(12323);
session.save(a);
session.flush();
session.clear();
private int id; private String name; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean equals(Object obj) {
AKey tmp = (AKey)obj;
if (tmp.getId()==this.id && this.name.equals(tmp.getName()))
return true;
else
return false;
}
public int hashCode() {
return name.hashCode()+id;
}}
我断点调试发现equals() 和 hashcode()根本没调用。
<hibernate-mapping default-lazy="false">
<class name="A" table="A">
<composite-id name="id" class="AKey">
<key-property name="id" column="id" type="int"/>
<key-property name="name" column="Name" type="string"/>
</composite-id>
<property name="list" type="int" column="list"/>
</class>
</hibernate-mapping>
^_^
A a = new A();
AKey ak = new AKey();
ak.setId(1);
ak.setName("id");
a.setId(ak);
a.setList(12323);
session.save(a);
session.flush();
session.clear();你clear干什么???你不commit,怎么插入??
改成:
session.save(a);
session.flush();
insertentities.commit();
A a = new A();
AKey ak = new AKey();
ak.setId(1);
ak.setName("id");
a.setId(ak);
a.setList(12323);
session.save(a);
session.flush();
insertentities.commit();
session.clear();
一样抛出org.hibernate.StaleStateException异常:
Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1
<hibernate-mapping default-lazy="false">
<class name="A" table="A">
<composite-id name="akey" class="AKey">
<key-property name="id" type="int"/>
<key-property name="name" type="string"/>
</composite-id>
<property name="list" type="int"/>
</class>
</hibernate-mapping>
相应地
public class A implements Serializable {
private AKey akey;
private String list;
.... //get,set方法省略
}
两个name是id有冲突,这个没关系.
查数据时都没问题.如果两个name是id有冲突,那么在查询的时候也会有问题的