quarkus entitymanager 固定数据源只写查询条件的hql的demo
时间: 2023-11-22 13:54:56 浏览: 48
以下是一个使用 Quarkus 和 Hibernate ORM 的示例,演示如何在固定数据源上使用 EntityManager 执行只读 HQL 查询:
首先,创建一个 Entity 类来映射数据库中的表:
```java
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@Column(name = "email")
private String email;
// getters and setters
}
```
接下来,在应用程序中创建一个 REST 资源类,定义一个 GET 端点,该端点使用 EntityManager 执行只读 HQL 查询:
```java
@Path("/users")
@Produces(MediaType.APPLICATION_JSON)
public class UserResource {
@PersistenceContext(unitName = "myUnit")
EntityManager em;
@GET
@Path("/search")
public List<User> searchUsers(@QueryParam("name") String name) {
TypedQuery<User> query = em.createQuery("SELECT u FROM User u WHERE u.name = :name", User.class);
query.setParameter("name", name);
return query.getResultList();
}
}
```
在这个示例中,我们注入了一个名为 `myUnit` 的 EntityManager,该管理器的数据源已经在应用程序配置中进行了配置。然后,在 `searchUsers` 方法中,我们使用 `createQuery` 方法创建了一个只读的 TypedQuery 对象,该对象执行了一个简单的 HQL 查询,它查找具有给定名称的所有用户。
最后,我们将查询参数设置为 `name` 并返回结果列表。
请注意,由于我们没有使用事务,因此 EntityManager 会自动创建和释放数据库连接。
希望这个示例可以帮助你开始使用 Quarkus 和 Hibernate ORM 在固定数据源上执行只读 HQL 查询。