IntelliJ IDEA 10从DB模型生成实体(POJO)
我如何使用IntelliJ IDEA从数据库模型生成实体(POJO)10.我在IntelliJ中创build“数据源”,但我不知道如何生成POJO。
这些步骤很简单,但是我想它很难,因为你已经习惯了eclipse接口(如果我必须在Eclipse中这样做,我会有同样的感觉)
首先,你需要告诉intelliJ你使用的是Hibernate(我猜如果你需要表的orm pojo)
- 转到“项目结构”( alt + ctrl + shift + s )
- 在“项目设置”中select“模块”
- 按+并在您的模块中添加hibernatefacet。
现在你已经设置了你的hibernateconfigurationfacet,你可以提取你的pojos。
- 在右下angular的水平面板上,您将看到一个名为“Persistence”的选项卡(如果您没有findPersistence选项卡,可以通过selectView> Tool Windows> Persistence来显示它)
- 在那里你可以右键点击像你的模块命名的hibernate图标
- 转到“生成持久性映射” – “通过数据库模式”
- 现在我想你可以find你的方式
- 在一般设置中select你想要使用的数据源,现在你可以看到你的数据源对象中的所有表
- 现在你可以做很多事情,添加与+符号的关系,改变pojo属性的名称和types等。注意:如果你得到一个错误,并且“OK”被禁用,那么可能是因为你为你find的数据typespojo是无效的。 只要把它改成你需要的那个,你就准备好了!
更新:
在IntelliJ 16中现在已经实现了这个function。 步骤如下:
数据库视图上下文菜单
脚本扩展
生成POJO
https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FIDEA-66037
处理带有下划线的表格(这是很常见的)时,默认的脚本扩展 Generate POJOs.groovy
不是很好。
所以我做了一些修改。
主要代码
def calcFields(DasObject table) { DasUtil.getColumns(table).reduce([]) { fields, col -> def spec = Case.LOWER.apply(col.dataType.specification) def typeStr = typeMapping.find { p, t -> p.matcher(spec).find() }.value fields += [[ name : javaName(col.name, false), type : typeStr, annos: """ /** * $col.comment */"""]] } } static String javaName(String str, boolean capitalize) { def s = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, str); capitalize || s.length() == 1 ? s : Case.LOWER.apply(s[0]) + s[1..-1] }
你可以在这里find全部的要点https://gist.github.com/aristotll/ad799a7462e8b705b26103944cca24a6