1

我的产品类型少于 5 种,并且我一直在遵循手册:
http ://docs.broadleafcommerce.org/current/Extending-Entities-Tutorial.html 直到“单表继承”,因为我只有更少变体,我不想使用单表继承。 我已经完成了以下操作,但是在重建并重新启动后,我没有看到在数据库中创建任何表。有任何想法吗?

图书

@Entity
@Table(name="SB_BOOKS")
public class BookImpl extends ProductImpl implements Books {
.....
}

持久性.xml

<class>com.xproject.core.catalog.domain.BookImpl</class>

上下文实体.xml

<bean id="com.xproject.core.catalog.domain.Book" class="com.xproject.core.catalog.domain.BookImpl" scope="prototype"/>

更新:请注意,如果我像这样覆盖(扩展)BLC ProductImpl bean,则会创建表

<bean id="org.broadleafcommerce.core.catalog.domain.ProductImpl" class="com.xproject.core.catalog.domain.BookImpl" scope="prototype"/>
4

2 回答 2

2

您在“development.properties”中设置的 blPU.hibernate.hbm2.ddl.auto 是什么?如果您希望 Hibernate 自动为您创建表,那么您应该将此设置为“create”或“create-drop”。另请注意,默认情况下,2 个应用程序(站点和管理员)对此具有不同的值。管理员设置为“更新”,而站点设置为“创建-删除”。如果您只启动管理员,因为 Hibernate DDL 设置为“更新”,我不相信您的新表会被创建。

我还假设您已经在“核心”项目中创建了这个域,这也是推荐的。

资料来源:作为一名阔叶工程师 :)

于 2013-03-21T18:59:27.473 回答
1

通过在 BLC 代码中遵循 phillips 提示并添加继承注释和策略 (JOINED) 来修复它。

@Entity
@Table(name="SB_BOOKS")
@Inheritance(strategy = InheritanceType.JOINED) /* FIX */
public class BookImpl extends ProductImpl implements Books {
.....
}
于 2013-03-21T23:12:45.133 回答