一, bean中的属性忘记写getter/setter方法

代码:


import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.junit.Test;
/**
 * Created by sky raker on 14-2-19.
 */
public class HibernateTest
{
    @Test
    public void test_1()
    {
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session = sessionFactory.openSession();
        People yuki = new People();
        session.beginTransaction();
        session.saveOrUpdate(yuki);
        session.getTransaction().commit();
    }
}


现象:

Hibernate常见错误收集_收集


People这个bean中有一个Address的Set集合, 但是代码中却没有getter/setter方法,所以产生了PropertyNotFoundExcpetion


二,在hibernate配置文件中没有使用cascade属性

代码:


import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import java.util.HashSet;
import java.util.Set;
/**
 * Created by shalaco on 14-2-19.
 */
public class HibernateTest
{
    @Test
    public void test_1()
    {
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session = sessionFactory.openSession();
        People yuki = new People();
                                                                                                                        
        Set<Address> set = new HashSet<>();
        Address a1 = new Address();
        set.add(a1);
        yuki.setAddresses(set);
        session.beginTransaction();
        session.saveOrUpdate(yuki);
        session.getTransaction().commit();
    }
}


配置文件:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="People" table="people">
        <id name="people_id">
            <generator class="native"/>
        </id>
        <set name="addresses" table="address">
            <key column="people_id" />
            <one-to-many class="Address" />
        </set>
    </class>
    <class name="Address" table="address">
        <id name="address_id">
            <generator class="native" />
        </id>
        <many-to-one name="people" />
    </class>
</hibernate-mapping>


现象:


Hibernate常见错误收集_收集_02



虽然配置了关联关系, 但是都没有配置cascade, Address类仍然需要独立映射, cascade应配置为save-update