[解決済み] Hibernateです。ManyToOne生成フィールドraw(255)
2022-02-26 13:57:35
質問
最近、hibernate-core 4.1.7 から 5.0.9 にアップグレードしましたが、このコードで問題が発生しました。
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
@JoinColumn(name = "FK_AAA", foreignKey = @ForeignKey(name = "CS_BBB"))
@org.hibernate.annotations.Index(name = "IDX_CCC", columnNames = "FK_DDD")
private ImportData importData;
これは定義されたクラスを指す正しい外部カラムを生成しますが、同じクラスに関するカラムも生成します。
IMPORTDATA RAW(255)
なぜこのraw(255)カラムが生成されるのですか?Hibernate-core 4.1.7では生成されなかったような気がします。
何か思い当たることはありますか?
更新1: もっと長いコードの断片を掲載します。
@MappedSuperclass
@Access(AccessType.PROPERTY)
public abstract class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public abstract Long getId();
}
@Entity
@Table(name = "IMPORT_DATA", uniqueConstraints = {
@UniqueConstraint(name = "UC_IMP_BID", columnNames = {"BUSINESS_ID"})
}, indexes = {
@Index(name = "IDX_IMP_DGXML_ID", columnList = "FK_DGXML_ID"),
@Index(name = "IDX_IMP_IMPXML_ID", columnList = "FK_IMPXML_ID")
})
public class ImportData extends BaseEntity {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() { return id; }
// ...
}
@Entity(name = "MUTATION")
@Table(name = "MUTATION")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "TYPE", discriminatorType = DiscriminatorType.STRING)
@SequenceGenerator(name = "mutationsSeq", sequenceName = "MUTATIONS_SEQUENCE", allocationSize = 1)
public abstract class Mutation extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "mutationsSeq")
private Long id;
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
@JoinColumn(name = "FK_IMP_ID", foreignKey = @ForeignKey(name = "CS_MUT_IMP_ID"))
@org.hibernate.annotations.Index(name = "IDX_MUT_IMP_ID", columnNames = "FK_IMP_ID")
protected ImportData importData;
}
@Entity(name="XXX")
@DiscriminatorValue("XXX_DISC")
public class XXX extends Mutation {
// ...
}
解決方法は?
に答えがありました。 Hibernateで複合キーをマッピングすると、Oracleで生のフィールドが生成される :
フィールドとメソッドにアノテーションを混在させていました。また、抽象的なスーパークラスには@Idを、派生クラスには再定義を付けていました。
この2つの要素を修正し、DBをクリーニングし、"create" ddlモードで再生成すると、修正はもはやRAWフィールドタイプを生成しないことが証明されました。
いつもありがとうございます。
関連
-
[解決済み] mongodb 4 データディレクトリ C:\data_dbdb not found
-
[解決済み] どのようにneo4jデータベースをリセット/クリア/削除するには?
-
[解決済み] なぜ私のPerlスクリプトは "out of memory "例外で死んでしまうのですか?
-
[解決済み] Django エラー - 一致するクエリが存在しません。
-
[解決済み] Hibernateです。ManyToOne生成フィールドraw(255)
-
[解決済み] 部分依存性(データベース)
-
[解決済み] 外部キーを主キーにするのは問題ないですか?
-
[解決済み】非常に大きなデータベースファイルを持つsqliteのパフォーマンス特性は何ですか?[クローズド]。
-
[解決済み】BASE用語の解説
-
[解決済み】pgadminでherokuのデータベースに接続する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] データベースの記号は何を表しているのですか?
-
[解決済み] 検出された解決済みの移動がフライウェイのデータベースに適用されていない。
-
[解決済み] Max CardinalityとMin Cardinalityの違いは何ですか?
-
[解決済み] DB2 ログファイルの制限、SQLCODE。-964
-
[解決済み] 機能依存の最小限の根拠
-
[解決済み] なぜOracleはoci.dllを見つけられないのでしょうか?
-
[解決済み] Django エラー - 一致するクエリが存在しません。
-
[解決済み] PostgresqlのSCRAM認証の問題はどうすれば解決できますか?
-
[解決済み] スキーマとテーブルとデータベースの違いは何ですか?
-
[解決済み】Cassandraのパーティションキー、コンポジットキー、クラスタリングキーの違い?