[解決済み] エンティティエラーのマッピングで繰り返される別のカラム
2022-06-08 09:36:07
質問
他のすべてのポストにもかかわらず、私はMacOSX、NetBeans 7.2上のGlassFishでこのエラーのための解決策を見つけることができません。
Here the error :
SEVERE: Exception while invoking class org.glassfish.persistence.jpa.JPADeployer
prepare method
SEVERE: Exception while preparing the app
SEVERE: [PersistenceUnit: supmarket] Unable to build EntityManagerFactory
...
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity:
com.supmarket.entity.Sale column: customerId
(should be mapped with insert="false" update="false")
以下はそのコードです。
セール.java
@Entity
public class Sale {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable=false)
private Long idFromAgency;
private float amountSold;
private String agency;
@Temporal(javax.persistence.TemporalType.DATE)
private Date createdate;
@Column(nullable=false)
private Long productId;
@Column(nullable=false)
private Long customerId;
@ManyToOne(optional=false)
@JoinColumn(name="productId",referencedColumnName="id_product")
private Product product;
@ManyToOne(optional=false)
@JoinColumn(name="customerId",referencedColumnName="id_customer")
private Customer customer;
public void Sale(){}
public void Sale(Long idFromAgency, float amountSold, String agency
, Date createDate, Long productId, Long customerId){
...
}
// then getters/setters
}
お客様.java
@Entity
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="id_customer")
private Long id_customer;
@Column(nullable=false)
private Long idFromAgency;
private String gender,
maritalState,
firstname,
lastname,
incomeLevel;
@OneToMany(mappedBy="customer",targetEntity=Sale.class, fetch=FetchType.EAGER)
private Collection sales;
public void Customer(){}
public void Customer(Long idFromAgency, String gender, String maritalState,
String firstname, String lastname, String incomeLevel) {
...
}
}
製品.java
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="id_product")
private Long id_product;
@Column(nullable=false)
private Long idFromAgency;
private String name;
@OneToMany(mappedBy="product",targetEntity=Sale.class, fetch=FetchType.EAGER)
private Collection sales;
//constructors + getters +setters
}
どのように解決するのですか?
メッセージは明確です: マッピングに繰り返されるカラムがあります。つまり、同じデータベース カラムを 2 回マッピングしているということです。そして実際、あなたはそうしています。
@Column(nullable=false)
private Long customerId;
というように、また
@ManyToOne(optional=false)
@JoinColumn(name="customerId",referencedColumnName="id_customer")
private Customer customer;
(そして、同じように
productId
/
product
).
他のエンティティをIDで参照するのではなく、エンティティへの直接参照で参照するようにしましょう。を削除して
customerId
フィールドを削除してください、それは無駄です。そして、同じように
productId
. 販売の顧客IDが欲しければ、こうすればいいのです。
sale.getCustomer().getId()
関連
-
同じ識別子値を持つ別のオブジェクトがすでにセッションと関連付けられていました。
-
org.xml.sax.SAXParseException: ルート要素に先行する文書内のマークアップは,十分にfoでなければならない。
-
Hibernateのhqlです。INSERT INTO ...のみ SELECT ... 形式のみがサポートされます。
-
同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられている場合。
-
LazyInitializationException: ロールのコレクションを遅延して初期化できませんでした。
-
原因:java.lang.ClassNotFoundException: com.mchange.v2.c3p0.ComboPooledDataSource
-
カラム処理方式でデータを切り捨て
-
[解決済み] DAOパターンとRepositoryパターンの違いは何ですか?
-
[解決済み] KotlinとJPA:デフォルトのコンストラクタ地獄
-
[解決済み] 多対多のアソシエーションテーブルを追加カラムでマッピングする
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Hibernateユーティリティクラス
-
同じ識別子値を持つ別のオブジェクトがすでにセッションと関連付けられていました。
-
org.xml.sax.SAXParseException: ルート要素に先行する文書内のマークアップは,十分にfoでなければならない。
-
Hibernateのhqlです。INSERT INTO ...のみ SELECT ... 形式のみがサポートされます。
-
引数型[java.lang.String]の名前がない、またパラメータ名情報が
-
org.springframework.dao.DataIntegrityViolationException の解決策について
-
[解決済み] DAOパターンとRepositoryパターンの違いは何ですか?
-
フィールド 'ID'にデフォルト値がない
-
hibernateExceptionFound コレクションへの共有リファレンス
-
[解決済み] 多対多のアソシエーションテーブルを追加カラムでマッピングする