日期:2014-05-19 浏览次数:20780 次
package com.chk.model; import javax.persistence.Id; import javax.persistence.IdClass; @IdClass(value = FamilyPK.class) public class Family { private String father; private String mother; private String name; private int count; @Id public String getFather() { return father; } public void setFather(String father) { this.father = father; } @Id public String getMother() { return mother; } public void setMother(String Mother) { this.mother = Mother; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } }
package com.chk.model; import java.io.Serializable; public class FamilyPK implements Serializable { private String father; private String mother; public String getFather() { return father; } public void setFather(String father) { this.father = father; } public String getMother() { return mother; } public void setMother(String Mother) { this.mother = Mother; } @Override public int hashCode() { // TODO Auto-generated method stub return this.mother.hashCode(); } @Override public boolean equals(Object obj) { // TODO Auto-generated method stub if(obj instanceof FamilyPK){ FamilyPK pk= (FamilyPK)obj; if(this.father.equals(pk.getFather()) && this.mother.equals(pk.getMother())){ return true; } } return false; } }
package com.chk.model.test; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.junit.Test; import com.chk.model.Family; public class FamilyPKTest { @Test public void test() { Family f = new Family(); f.setFather("chengke"); f.setMother("jiajia"); f.setName("family"); f.setCount(3); Configuration cfg = new Configuration(); SessionFactory sf = cfg.configure().buildSessionFactory(); Session session = sf.openSession(); session.beginTransaction(); session.save(f); session.beginTransaction().commit(); session.close(); sf.close(); } }
org.hibernate.PropertyNotFoundException: Could not find a getter for pk in class com.chk.model.Family at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:326) at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:320) at org.hibernate.tuple.PropertyFactory.getGetter(PropertyFactory.java:191) at org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:67) at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:135) at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:485)