Broadleaf Commerce和多种产品类型

时间:2013-03-21 16:35:15

标签: spring hibernate e-commerce broadleaf-commerce

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

图书

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

的persistence.xml

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

上下文entity.xml

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

UPDATE:请注意,如果我覆盖(扩展)BLC ProductImpl bean,就会创建表

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

2 个答案:

答案 0 :(得分:2)

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

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

资料来源:担任阔叶工程师:)

答案 1 :(得分:1)

通过在BLC代码中加入菲利普提示,并添加继承注释和策略(JOINED)来修复它。

@Entity
@Table(name="SB_BOOKS")
@Inheritance(strategy = InheritanceType.JOINED) /* FIX */
public class BookImpl extends ProductImpl implements Books {
.....
}