我正在做一项服务,该服务从源获取数据并使用 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) 如何使用 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)
显然,代码没有返回我想要的。因此,请帮助我解决这个问题。谢谢 !