[feedback]$ jpa-new-entity --named FeedbackEntry
这个命令有几个作用,首先它在正确的地方创建persistence.xml(在META-INF文件夹下),默认是Hibernate配置。 然后在子包model下创建实体。注意这个实体已经有一个id和version以及他们的getters/setters. Forge的好处就是一个命令就全部创建好可以用了。
如果你不愿意用Java EE容器的默认数据源,你可以指定额外的连接选项比如JNDI data-source names, JDBC connection information, and data-source types. 注意, 这样的话你可能配置你的应用服务器来提供这个新的data-source and/or database connection.
[feedback]$ jpa-setup --provider Eclipse Link --dbType POSTGRES --dataSourceName java:comp/DefaultDataSource
如果执行了jpa-setup命令,你会发现提示符变化了:从[feedback] 变到了[persistence.xml]. 在Forge中,提示符总是告诉你在什么地方。 你能输入命令pwd或者ls。 现在我们回到feedback实体: 输入cd ~~ 回到根目录,再输入cd src/main/java/org/cedj/model/FeedbackEntry.java.
五、在实体上创建新的域
FeedbackEntry实体应该可以用Twitter ID记录一些用户的反馈。我们加字段(以及验证他们不为null):
[FeedbackEntry.java]$ jpa-new-field --named twitterHandle --type String
[FeedbackEntry.java]$ jpa-new-field --named feedback --type String
Forge有许多选项快速创建属性和定制它们的JPA映射。比如我们想指定反馈由什么语言写成。我们能使用Forge快速创建一个Java枚举类型,再把它用到实体中 :
FeedbackEntry$ java-new-enum --named Language --targetPackage org.cedj.feedback.model
[Language.java]$ java-new-enum-const ENGLISH
[Language.java]$ java-new-enum-const FRENCH
注意提示符,Forge有很多命令行在目录、类或文件之间浏览。回到FeedbackEntry实体的命令:
[Language.java]$ cd ..
[model]$ cd FeedbackEntry.java
[FeedbackEntry]$
创建枚举域:
[FeedbackEntry]$ jpa-new-field --named language --type org.cedj.feedback.model.Language
默认JPA域是字符串类型。使用--type选项,我们可选基本数据类型(int, byte, char), enum,或其他实体和实体关联 (One-to-One, One-to-Many, Many-to-One, Many-to-Many). 我们再创建一个新的Author实体,增加一个Many-to-One 关系到feedback:
$ jpa-new-entity --named Author
[Author.java]$ jpa-new-field --named firstName
[Author.java]$ cd ../FeedbackEntry.java
[FeedbackEntry]$ jpa-new-field --named author --type org.cedj.feedback.model.Author --relationshipType Many-to-One
六、在实体上增加Bean验证限制
Java EE6引入了Bean Validation规范,这个规范允许一个声明来验证限制全部数据库、应用和视图层。
[FeedbackEntry.java]$ constraint-add --onProperty twitterHandle --constraint NotNull
[FeedbackEntry.java]$ constraint-add --onProperty feedback --constraint NotNull
Forge在后台创建validation.xml文件,增加Bean验证依赖和需要的限制。
七、