小编min*_*inh的帖子

如何在JPA中创建序列而不直接在数据库中创建

我正在做一项服务,该服务从源获取数据并使用 JPA 将它们提取到我的数据库中。id是通过使用sequence生成的。我使用以下命令在数据库上创建了序列:

CREATE SEQUENCE crm_test_sq_1 MINVALUE 1 MAXVALUE 999999999999999999999999999 START WITH 1 INCREMENT BY 1 CACHE 100 NOCYCLE
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何直接从我的代码创建序列。

谁能帮我解决这个问题吗?太感谢了!

我的模型类 modeltest.java:

    @Entity
    @Table(name = "MODEL_TEST")
    
    @JsonPropertyOrder({ "ID", "CODE", "NAME" })
    @XmlRootElement
    @NamedQueries({
        @NamedQuery(name = "modeltest.getall", query = "SELECT e FROM modelteste"),
        @NamedQuery(name = "modeltest.deleteAll", query = "DELETE FROM modeltest e")})
    public class modeltest implements Serializable {
        private static final long serialVersionUID = 1L;
    
        @Id
        @GeneratedValue(generator = "crm_test_sq", strategy = GenerationType.SEQUENCE)
        @SequenceGenerator(name = "crm_test_sq", sequenceName = "crm_test_sq",allocationSize=1)
        @Column(name="ID", unique=true, …
Run Code Online (Sandbox Code Playgroud)

java database oracle hibernate jpa

5
推荐指数
1
解决办法
1万
查看次数

JPA 本机查询获取单个对象

如何使用 JPA Native 查询获取单个对象。我做了一些研究,但都给出了一个答案是使用“getSingleResult”,但是它没有返回我想要的。例如,如果我想在我的数据库中获取表的数量并将其提取到一个整数中,我该怎么办。

下面的代码显示了我如何通过使用 Sessison 休眠来实现这一点:

int check = Integer.parseInt((String) sessionF.createSQLQuery("select to_char(count(*)) as count from user_tables where table_name upper('TEST')").uniqueResult()); 
Run Code Online (Sandbox Code Playgroud)

我希望在 JPA 中一切顺利:

int check = Integer.parseInt((String) getEntityManager().createNativeQuery("select to_char(count(*)) as count from user_tables where table_name upper('TEST')").getSingleResult()); 
Run Code Online (Sandbox Code Playgroud)

显然,代码没有返回我想要的。因此,请帮助我解决这个问题。谢谢 !

java mysql hibernate jpa jpql

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

hibernate ×2

java ×2

jpa ×2

database ×1

jpql ×1

mysql ×1

oracle ×1