gpt4 book ai didi

java - JPA 不插入数据库,为什么?

转载 作者:行者123 更新时间:2023-11-29 05:40:15 25 4
gpt4 key购买 nike

我是 JPA 的新手,我正在使用 Glassfish 3 和 Eclipse Java EE Web 开发人员在 JSF 2 项目中使用。这些是我的设置以及我试图在我的数据库中保存的方式:

持久性.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>

我的实体:

@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


}

以及我如何调用我的 EntityManager 并尝试保留该对象:

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);

}

但是当我在我的数据库中执行时没有任何反应,JPA 不会将对象保存在我的表中,我做错了什么?有什么想法吗?

最佳答案

你缺transaction handling ,例如

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

我建议您阅读 JPA 和 JSF 集成,可能有一些实用程序/过滤器/JSF 支持可以为您处理此问题。

关于java - JPA 不插入数据库,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7300309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com