JPAエンティティクラスに問題があります。このエンティティは今のところ完璧に動作していましたが、 私は別のフィールド(単純な文字列、データベースにはvarchar(255)NOT NULL)を追加しました。新しいエンティティを維持しようとすると、JPAはエンティティを永続化するときにフィールドを無視します
java.sql.SQLException: Field 'companyLogoUrl' doesn't have a default value
まあまあです。列にはデフォルト値がありません。私のコードでは値を設定しました。生成された挿入ステートメントを見ると、フィールドは存在しません。
変数の名前が列名と一致するため、エラーの原因となる注釈はありません。それは、うまく動作する他のフィールド/列と同様に扱われます。
ありがとうございました!
EDIT:
ここでは、クラス(グルーヴィー級)である:
@Entity
class Company extends KupiumEntity
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
final int companyId
String companyName
String bank
String bankCode
String accountNumber
String accountOwner
String companyLogoUrl
@ManyToOne(cascade=CascadeType.PERSIST)
@JoinColumn(name="addressId")
Address address = new Address()
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="companyId")
List<Invoice> invoices = new ArrayList<Invoice>()
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="companyId")
List<Kupon> kupons = new ArrayList<Kupon>()
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="mandatorId")
List<Mandator> mandators = new ArrayList<Mandator>()
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="companyAppId")
List<CompanyApp> companyApps = new ArrayList<CompanyApp>()
}
EDIT 2:混乱のため 申し訳ありません。テーブルのフィールドと列の名前は 'companyLogoUrl'
エンティティクラスを投稿してください。 –
Javaコード/マッピングを確認する必要があります。アノテーションがない、ゲッター/セッター、不正な修飾子など、既存のフィールドと新しいフィールドとの間に*若干の違いがあるはずです... –
このクラスが生成されたSQLと完全に一致するようには見えません... CHANGEDAT? CREATEDAT?すべてが同じページにありますか? –