与JSF一起使用@Entity,用JPA坚持"hello world"

Thu*_*fir 0 java jsf ejb jpa cdi

Oracle非常清楚地描述了如何制作@Entity.但是,我并不完全清楚如何实际添加/删除表.我也喜欢玫瑰印度的解释,但只是想澄清一般的想法.

对于带有CDI的JSF JEE6应用程序,我基本上可以创建一个@Entity类,在@Named bean中实例化一些实例,并使用来自bean的EntityManager将(CRUD操作)写入MySQL数据库?我可以使用Glassfish附带的默认JPA吗?

我想在开始之前澄清一般的想法.

Mat*_*ndy 5

一般来说,您至少有两个选择:

  1. 创建数据库表和引用,然后根据数据库表构建实体类(现代IDE提供了从db表自动生成实体类的工具)

  2. 手动编写实体类并从这些类创建数据库.JPA提供程序通常通过在persistence.xml中设置一个特殊参数来允许这种情况,例如对于Eclipselink:

<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
Run Code Online (Sandbox Code Playgroud)

删除所有现有表并从实体类中创建新表(在开发期间特别有用),同时

<property name="eclipselink.ddl-generation" value="create-tables"/>
Run Code Online (Sandbox Code Playgroud)

如果没有,则只会创建一个新表.

我可以使用Glassfish附带的默认JPA吗?

是的,对于基于规范的功能.