私のエンティティがフィールドにまたは同様の注釈をmodel
持っているかどうかを確認するには、次のコードを実行する必要があります。nullable=false
import javax.persistence.Column;
import .....
private boolean isRequired(Item item, Object propertyId) {
Class<?> property = getPropertyClass(item, propertyId);
final JoinColumn joinAnnotation = property.getAnnotation(JoinColumn.class);
if (null != joinAnnotation) {
return !joinAnnotation.nullable();
}
final Column columnAnnotation = property.getAnnotation(Column.class);
if (null != columnAnnotation) {
return !columnAnnotation.nullable();
}
....
return false;
}
これが私のモデルのスニペットです。
import javax.persistence.*;
import .....
@Entity
@Table(name="m_contact_details")
public class MContactDetail extends AbstractMasterEntity implements Serializable {
@Column(length=60, nullable=false)
private String address1;
注釈に慣れていない人@Column
のために、ヘッダーは次のとおりです。
@Target({METHOD, FIELD})
@Retention(RUNTIME)
public @interface Column {
isRequired
が時々戻ってくることを期待してtrue
いますが、そうではありません。私はすでに自分のプロジェクトでmvn clean
andmvn install
を実行しましたが、それは役に立ちません。
Q1: 何が間違っていますか?
Q2: よりクリーンなコーディング方法はありますisRequired
か (おそらくジェネリックをより有効に活用する)?