Я создал простое весеннее веб-приложение mvc с hibernate
и mysql
(все работало хорошо).Затем я изменил mysql
на oracle
.После первого запуска приложения (при подключении к базе данных Oracle) были созданы таблицы, соответствующие моделям сущностей, определенным в моем приложении.Я добавил одну страну и одного пользователя в таблицы COUNTRY
и MYAPPUSER
из SQL DEVELOPER
.Теперь я пытаюсь получить пользователя из таблицы MYAPPUSER
, но вместо пользователя, который существует, я получаю нулевое значение.
Это сущность пользователя:
@Entity
@Table(name = "myAppUser")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "id_Sequence")
@SequenceGenerator(name = "id_Sequence", sequenceName = "ID_SEQ")
@Column(name = "Id", updatable = false, nullable = false)
private int id;
@Column(name = "FirstName")
private String firstName;
@Column(name = "LastName")
private String lastName;
@Column(name = "Username")
private String username;
@Column(name = "Password")
private String password;
@OneToMany(mappedBy = "user")
private List<UserSubject> userSubjects;
@ManyToOne
@JoinColumn(name = "country_id", nullable = false)
private Country country;
@OneToMany(mappedBy = "user")
private List<Test> testList;
//and getters and setters
}
Это код, покаотладка:
В sql developer:
этосгенерированный sql с помощью hibernate:
Меня интересует, почему пользователь не имеет значения после выбора данных и почему вместо user1
и * ставятся вопросительные знаки1036 * в сгенерированном sql?
Я думаю, что этот эффект специфичен для oracle, потому что у меня не было такой проблемы с базой данных MySQL.
PS Исключения не выбрасываются ....