1

私は 5 つ未満の製品タイプ しか持っていません
バリエーション、単一テーブルの継承を使用したくありません。 次のことを行いましたが、再構築して再起動した後、データベースに作成されたテーブルが表示されません。何か案は?

書籍

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

Persistence.xml

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

context-entity.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 が「更新」に設定されているため、admin のみを起動した場合、新しいテーブルが作成されるとは思えません。

また、推奨される「コア」プロジェクトでこのドメインを作成したと仮定します。

出典:Broadleafエンジニアであること:)

于 2013-03-21T18:59:27.473 に答える
1

phillips のヒントに従って BLC コードを修正し、継承の注釈と戦略 (JOINED) を追加しました。

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