I have Class Customer ,User , Customer has property manager of user class
Class Customer {
/** The manager. */
@ManyToOne(optional = false, cascade = {CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.MERGE})
@JoinColumn(name = "MANAGER")
@JsonSerialize(using = EntitySerializer.class)
@JsonDeserialize(using = UserDeserializer.class)
private User manager;
}
-------------------------------------
Class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = User.TABLE_NAME + "_SEQUENCE")
@SequenceGenerator(name = User.TABLE_NAME + "_SEQUENCE", sequenceName = User.TABLE_NAME + "_SEQ")
@Column(name = FIELD_ID, nullable = false)
@SuppressWarnings("PMD.ShortVariable")
private Integer id;
@Override
public Integer getId() {
return id;
}
@Override
public void setId(final Integer newId) {
//System.out.println("setID");
id = newId;
}
}
Nun, wenn ich KriterienFehler: - org.hibernate.PropertyAccessException. Konnte keinen Feldwert durch Reflexion Getter
endgültige Kriterien Kriterien zu schaffen versuchen = getSession() createCriteria (Customer.class) ; criteria.add (Restrictions.ilike ("Manager", "%" + search + "%"))
Es wirft Fehler: - org.hibernate.PropertyAccessException: konnte kein Feldwert durch Reflexion Getter von com erhalten .User.id
verursacht durch: java.lang.IllegalArgumentException: Kann nicht eingestellt java.lang.Integer Feld com.User.id zu java.lang.String
** Id Feld ist integer **
Aber nach Situation muss ich verwendet, um meinen Zustand WRT-ID-Filter ... d.h manger.id. Jede Möglichkeit, das zu archivieren –