JPAエンティティクラスに問題があります。このエンティティは正常に機能していましたが、今日、別のフィールド(単純な文字列、データベースにvarchar(255)NOT NULL)を追加しました。新しいエンティティを永続化しようとすると、
java.sql.SQLException: Field 'companyLogoUrl' doesn't have a default value
まあ、これは本当です。列にはデフォルト値がありません。しかし、私のコードでは、その値を設定しました。生成された挿入ステートメントを見ると、フィールドが存在しません。
INSERT INTO COMPANY (ACCOUNTNUMBER, ACCOUNTOWNER, BANK, BANKCODE, CHANGEDAT,
COMPANYNAME, CREATEDAT, addressId)
変数の名前は列名と一致するため、エラーの原因となる可能性のある注釈はありません。正常に機能する他のフィールド/列と同じように扱われます。
助けてくれてありがとう!
編集:
クラス(Groovyクラス)は次のとおりです。
@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>()
}
編集2:混乱してすみません。テーブルのフィールドと列の名前は「companyLogoUrl」です。