我正在从NetBeans IDE 11.3、Hibernate ORM 5.4.31中的Derby 10.14.2.0数据库生成POJO。
它不会在实体类relationship-mappings
中hbm.xml
或实体类中生成任何东西,如many-to-one/one-to-one
)。
我将Derby 示例项目用于mcve。
我使用了 Derby 示例数据库中的两个表。
产品和采购订单
产品表在 PurchaseOrder 中引用。
表
可以在下图中看到PurchaseOrder
。FOREIGN_KEY_PRODUCT_ID.
休眠.cfg
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.DerbyTenSevenDialect</property>
<property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
<property name="hibernate.connection.url">jdbc:derby://localhost:1527/sample</property>
<property name="hibernate.connection.username">app</property>
<property name="hibernate.connection.password">app</property>
<mapping resource="com/pojo/Product.hbm.xml"/>
<mapping resource="com/pojo/PurchaseOrder.hbm.xml"/>
</session-factory>
</hibernate-configuration>
我也尝试定义休眠属性
<property name="hibernate.default_catalog">app</property>
和
<property name="hibernate.default_schema">app</property>
但不,这无济于事。
休眠.reveng.xml
<hibernate-reverse-engineering>
<schema-selection match-schema="APP"/>
<table-filter match-name="PRODUCT"/>
<table-filter match-name="PURCHASE_ORDER"/>
</hibernate-reverse-engineering>
PurchaseOrder.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.pojo.PurchaseOrder" table="PURCHASE_ORDER" schema="APP" optimistic-lock="version">
<id name="orderNum" type="int">
<column name="ORDER_NUM" />
<generator class="assigned" />
</id>
<property name="customerId" type="int">
<column name="CUSTOMER_ID" not-null="true" />
</property>
<property name="productId" type="int">
<column name="PRODUCT_ID" not-null="true" />
</property>
<property name="quantity" type="java.lang.Short">
<column name="QUANTITY" />
</property>
<property name="shippingCost" type="big_decimal">
<column name="SHIPPING_COST" precision="12" />
</property>
<property name="salesDate" type="date">
<column name="SALES_DATE" length="10" />
</property>
<property name="shippingDate" type="date">
<column name="SHIPPING_DATE" length="10" />
</property>
<property name="freightCompany" type="string">
<column name="FREIGHT_COMPANY" length="30" />
</property>
</class>
</hibernate-mapping>
在上面的PurchaseOrder.hbm.xml
文件中,relationship mapping
应该生成但你可以看到它丢失了。
为什么relationship mapping
不为 Derby 的示例数据库生成?
使用 MySQL 它工作正常。
Hibernate 不正确支持 Derby 吗?
什么是解决方案?