В моем JPA приложения, я использую следующий ЗЕЬЕСТ для извлечения пользователя из базы данных:JPA: Почему идентификатор выбранного объекта null?
TypedQuery<AppAdmin> query = entityManager.createQuery("SELECT a FROM AppAdmin a WHERE a.username=:username", AppAdmin.class);
query.setParameter("username", username);
AppAdmin user = query.getSingleResult();
Однако поле идентификатор пользователя всегда пустой, хотя я проверил, что поле не равно нулю в базы данных. Что может быть причиной такого поведения?
Ниже показан мой AppAdmin
класс:
@Entity
@Table(name = "u_userdetails_admin")
public class AppAdmin extends BasicUser {
/**
*
*/
private static final long serialVersionUID = -41356272870596876L;
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "uuid2")
@Column(name = "id", columnDefinition = "BINARY(16)")
private UUID id;
protected AppAdmin(){}
public AppAdmin(
@JsonProperty("id") UUID id,
@JsonProperty("username") String username,
@JsonProperty("password") String password,
@JsonProperty("registrationDate") LocalDate registrationDate,
@JsonProperty("locked") boolean locked,
@JsonProperty("enabled") boolean enabled,
@JsonProperty("activationKey") String activationKey,
@JsonProperty("email") String email) {
super(id, username, password, registrationDate, locked, enabled, activationKey, email, new ArrayList<String>());
}
}
Вы должны точно указать используемые dbms и тип столбца id. Это может иметь заболеваемость. – davidxxx
Используемый dbms - это MySQL, двоичный тип столбца id (16) – user2035039