1

私は Hibernate を初めて使用し、Hibernate アノテーションの使用中に結合サブクラス テーブルを作成できません。

これが私のコードです。

これがメインクラスです。

@Entity
@Table(name="CRM_User")
@Inheritance(strategy=InheritanceType.JOINED)
public class UserImp extends BaseModel implements IUser, Serializable
{
  ... ...

そして Staff クラスは User クラスを拡張します。

@Entity
@Table(name="CRM_Staff") 
@PrimaryKeyJoinColumn(name="Id")
public class StaffImp extends UserImp implements IStaff, Serializable
{
  ... ...   

単体テストを実行すると、エラーが発生します。

/* Test get all User */
@Test
public void testGetAllUser()
{
    List<IUser> users = (List<IUser>) this.userDAO.getAll("UserImp");
    assertEquals(2, users.size());
}

これがエラーです。

......
19:31:04,880  INFO SchemaExport:281 - schema export complete
19:31:04,918  INFO DefaultTraversableResolver:81 - Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
19:31:05,158  WARN JDBCExceptionReporter:233 - SQL Error: 1146, SQLState: 42S02
19:31:05,158 ERROR JDBCExceptionReporter:234 - Table 'test.crm_staff' doesn't exist  
... ...

本当にありがとう!

4

1 に答える 1

1

あなたの注釈は正しいようです: テーブル 'crm_staff' は存在しますか? このテーブルを使用してデータベースを作成しましたか、または (テストの実行時に hibernate がこれを作成する必要がある場合) hibernate.hbm2ddl.autocreate-drop に設定しましたか?

于 2011-04-14T10:49:40.340 に答える