2012-04-19 5 views
1

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'

+0

エンティティクラスを投稿してください。 –

+0

Javaコード/マッピングを確認する必要があります。アノテーションがない、ゲッター/セッター、不正な修飾子など、既存のフィールドと新しいフィールドとの間に*若干の違いがあるはずです... –

+0

このクラスが生成されたSQLと完全に一致するようには見えません... CHANGEDAT? CREATEDAT?すべてが同じページにありますか? –

答えて

1

私はまだ原因が何であるかはわかりませんが、今日この問題を解決しました。

私はunitTestsを実行しようとしましたが、私はこのプロジェクトでpom.xmlを見つけることができなかったと言いました。これはMaven-Projectではないので、なんとなく驚きました。なぜ彼がそれを探していたのか理解できません。とにかく、私は新しいプロジェクトを作成し、ソースを古いものから新しいものにコピーして、それが動作します。

私はまだ

(なぜ他の彼はのpom.xmlを探すのでしょうか?)日食もMavenプロジェクトとしてそれについて考えるだろう、なぜそれが難しい把握するために見つけて、再び、私は名前についての混乱について謝罪フィールド/列の助けてくれてありがとう、みんな!

関連する問題