Java 无法使用hibernate从oracle表中选择数据
我用Java 无法使用hibernate从oracle表中选择数据,java,oracle,hibernate,Java,Oracle,Hibernate,我用hibernate和mysql创建了一个简单的springmvcweb应用程序(一切正常)。然后,我将mysql更改为oracle。在应用程序第一次运行之后,创建了与我的应用程序中定义的实体模型相对应的表(连接到oracle数据库)。我在sqldeveloper的country和MYAPPUSER表中添加了一个国家和一个用户。现在,我试图从MYAPPUSER表中获取一个用户,但得到的是null,而不是user,它是存在的 这是用户实体: @Entity @Table(name = "myAp
hibernate
和mysql
创建了一个简单的springmvcweb应用程序(一切正常)。然后,我将mysql
更改为oracle
。在应用程序第一次运行之后,创建了与我的应用程序中定义的实体模型相对应的表(连接到oracle数据库)。我在sqldeveloper
的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
}
@实体
@表(name=“myAppUser”)
公共类用户{
@身份证
@GeneratedValue(策略=GenerationType.SEQUENCE,generator=“id_SEQUENCE”)
@SequenceGenerator(name=“id\u Sequence”,sequenceName=“id\u SEQ”)
@列(name=“Id”,updateable=false,nullable=false)
私有int-id;
@列(name=“FirstName”)
私有字符串名;
@列(name=“LastName”)
私有字符串lastName;
@列(name=“Username”)
私有字符串用户名;
@列(name=“Password”)
私有字符串密码;
@OneToMany(mappedBy=“用户”)
私人物品清单;
@许多酮
@JoinColumn(name=“country\u id”,null=false)
私人国家;
@OneToMany(mappedBy=“用户”)
私有列表测试列表;
//以及能手和二传手
}
这是调试时的代码:
在sql developer中:
这是由hibernate生成的sql:
我感兴趣的是,为什么用户在选择数据后为空,为什么在生成的sql中问号代替了user1
和123
我认为这种效果是oracle特有的,因为我对MySQL数据库没有这样的问题
p.S异常不会被抛出…从SQL Developer中提交的解决方案的注释中可以看出。实际上是在执行查询吗?获取null和不获取任何结果是两件不同的事情。但我不懂Java。有没有办法确定查询是否在oracle中执行?您可以查询连接的会话ID的
v$open\u cursor
。Hibernate不能告诉您它做了什么吗?>在生成的sql中,问号代替了user1和123?