Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA不在数据库中插入,为什么?_Java_Mysql_Jpa - Fatal编程技术网

Java JPA不在数据库中插入,为什么?

Java JPA不在数据库中插入,为什么?,java,mysql,jpa,Java,Mysql,Jpa,我是JPA新手,我正在一个JSF2项目中与Glassfish3和EclipseJavaEEWeb开发人员一起使用。 以下是我的设置以及我试图在数据库中持久化的方式: persistence.xml <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/

我是JPA新手,我正在一个JSF2项目中与Glassfish3和EclipseJavaEEWeb开发人员一起使用。 以下是我的设置以及我试图在数据库中持久化的方式:

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="SuaParte" transaction-type="RESOURCE_LOCAL">
        <class>com.suaparte.pojo.Area</class>
            //other entities

        <properties>
            <property name="eclipselink.jdbc.batch-writing" value="JDBC"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://<hostname>:3306/sua_parte"/>
            <property name="javax.persistence.jdbc.user" value=<username>/>
            <property name="javax.persistence.jdbc.password" value=<password>/>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
        </properties>
    </persistence-unit>
</persistence>
但是,当我在数据库中不执行任何操作时,JPA不会将对象持久化到我的表中,我做错了什么? 有什么想法吗?

你没有,例如


我建议您仔细阅读JPA和JSF集成,可能会有一些实用程序/过滤器/JSF支持为您解决这个问题。

如果您最终在JSF中实现它,请在EJB中实现,那么容器将为您处理事务。
@Entity
@Table(name="area")
public class Area implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(unique=true, nullable=false)
    private byte id;

    @Column(nullable=false, length=45)
    private String area;

    //bi-directional many-to-one association to Company
    @OneToMany(mappedBy="areaBean")
    private List<Company> companies;

    //getters and setters    


}
public static void main(String[] args) {
    // TODO Auto-generated method stub
    EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("SuaParte");
    EntityManager entityManager = entityManagerFactory.createEntityManager();

    Area area = new Area();
    area.setArea("test");

    entityManager.persist(area);

}
entityManager.getTransaction().begin();
entityManager.persist(area);
entityManager.getTransaction().commit();