Itt*_*tai 5 java hibernate jpa reverse-engineering hibernate-tools
我在Eclipse(Helios)中使用Hibernate工具3.40.我正在尝试使用EJB3样式(即JPA2.0注释)从我的数据库(MSSQL 2008)生成POJO.
比方说,我有两个表A和B那里是从外键A来B.
默认情况下,这会生成一个POJO,A其中有B一个成员(其"父")和一个POJO,B其中有Set<A>一个成员(其"子").
我想知道如何控制rev-eng,以便只创建关联的一面(我有不同的用例,所以基本上所有三个选项对我来说都很重要).
我不想使用hbm.xml文件,因为我正在使用注释和JPA2.0但是我可以通过hibernae.reveng.xml在逆向工程过程中指定一些元数据来休眠
我已经尝试配置foreign-key属性并在那里定义,exclude=true但这只为我提供了一个场景的答案.这生成了一个A带有bPK int成员的POJO,这是可以容忍和可理解的,但是生成的POJO B现在不能编译,因为one-to-many注释具有无效属性; 在mappedby="unresolved"由于这样的事实,A不再具有休眠复仇可以映射回财产.
所以,我目前无法创建单向关联,我会感激任何帮助.
reveng. strategy为at创建一个类Hibernate Code Generation Configuration
例子 :
public class MyReverseEngineeringStrategy extends DelegatingReverseEngineeringStrategy {
public MyReverseEngineeringStrategy(ReverseEngineeringStrategy delegate) {
super(delegate);
}
@Override
public void setSettings(ReverseEngineeringSettings settings) {
super.setSettings(settings);
}
@Override
public boolean excludeForeignKeyAsCollection(String keyname,
TableIdentifier fromTable, java.util.List fromColumns,
TableIdentifier referencedTable, java.util.List referencedColumns) {
// TODO : Your work here
if (keyname.equals("___") &&
fromTable.getName().equals("___") &&
fromColumns.contains("___") &&
referencedTable.getName().equals("___") &&
referencedColumns.contains("___")) {
return true;
}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
方法的 JavaDocexcludeForeignKeyAsCollection
Should this foreignkey be excluded as a oneToMany
Run Code Online (Sandbox Code Playgroud)
还有另一个方法调用excludeForeignKeyAsManytoOne
Should this foreignkey be excluded as a many-to-one
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3467 次 |
| 最近记录: |