我使用 hibernate
和 mysql
创建了一个简单的 spring mvc Web 应用程序(一切正常)。然后,我将 mysql
更改为 oracle
。首次运行应用程序后,(连接到 Oracle 数据库)创建了与我的应用程序中定义的实体模型相对应的表。我从 SQL DEVELOPER
向 COUNTRY
和 MYAPPUSER
表添加了一个国家/地区和一名用户。现在,我试图从 MYAPPUSER
表中获取用户,但我得到的是 null 而不是存在的 user。
这是用户实体:
@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 中:
这是由hibernate生成的sql:
我感兴趣的是为什么选择数据后 user 为 null 以及为什么在生成的 sql 中问号代替了 user1
和 123
?
我认为这个效果是oracle特有的,因为我使用MySQL数据库没有这样的问题。
P.S 不会抛出异常......
最佳答案
根据评论,解决方案是在 SQL Developer 中提交。
关于java - 无法使用 hibernate 从 oracle 表中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53351356/