0

このエラーが表示されます:

    javax.ejb.EJBException: javax.validation.ConstraintViolationException: Validation
failed for classes [EntityBeans.PwVersions] during update time for groups 
[javax.validation.groups.Default, ] List of constraint violations:
[ ConstraintViolationImpl{interpolatedMessage='size must be between 0 and 45', 
propertyPath=directory, rootBeanClass=class EntityBeans.PwVersions, messageTemplate='{javax.validation.constraints.Size.message}'} ]

実行時に、イライラしています。クエリ結果をPwVersionsオブジェクトとしてキャストしようとすると、問題が発生します。以下のコード行(または同等のもの)を使用する必要があるので、これを機能させるために(データベースの変更を除いて)他の場所で何を変更する必要があるか知りたいですか?おそらく、違反している制約を変更する方法があります(Javaでの制約の処理に慣れていません)(メジャー/マイナーは両方とも正しいです)

PwVersions pwv= (PwVersions)em.createQuery("select pwv from PwVersions pwv where 
major= :major and minor = :minor").getSingleResult();

ありがとうございました

4

1 に答える 1

2

検証例外は、おそらくこの注釈によってスローされます。

@javax.validation.constraints.Size(min = 0, max = 45)

class のプロパティの前に配置しますEntityBeans.PwVersions。それを取り除くには、db テーブルのフィールドの長さを調整するか、db フィールドの最大サイズに一致するようにSizeアノテーション自体を調整します (または、必要がない場合はアノテーションを削除します)。まったく)。

コード スニペットは EJB に配置されるため、EJB 例外は単に検証例外をキャッチして再スローするだけです。

于 2013-03-01T18:53:32.697 に答える