Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用hibernate从oracle表中选择数据_Java_Oracle_Hibernate - Fatal编程技术网

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?