Giriş
Şu satırı dahil ederiz.
constructor
EntityManager tarafından yaratılır. Gerekirse Hibernate'e cast edilebilir. Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Nesneyi günceller.
Örnek
Şöyle yaparız.
Şöyle yaparız.
Açıklaması şöyle.
Açıklaması şöyle. Untyped List nesnesi yani generics kullanmayan List<Object[]> döner.
Şöyle yaparız.
Şöyle yaparız.
Örnek
Şöyle yaparız.
Örnek
Şöyle yaparız.
Select cümlesini çalıştırarark tek bir nesne döndürür.
join fetch ile şöyle yaparız. Join Fetch lazy olan OneToMany ilişkilerde eager veri çekmek için kullanılır.
Şöyle yaparız.
Şöyle yaparız.
Parametreler :name şeklindedir. Sql cümlesi içinde parametrelere ismen erişir ve değer atar.
Örnek
Şöyle yaparız.
Şöyle yaparız.
Select cümlesinin sonucunu dolaşabilmemizi sağlar. Şöyle yaparız.
Hibernate nesnesine dönüştürmek için şöyle yaparız.
Şu satırı dahil ederiz.
import javax.persistence.Query;
Bu sınıf JPQL veya "Native Sql Query" çalıştırabilir.constructor
EntityManager tarafından yaratılır. Gerekirse Hibernate'e cast edilebilir. Şöyle yaparız.
org.hibernate.ejb.SQLQuery hq = (org.hibernate.ejb.HibernateQuery) query;
ÖrnekŞöyle yaparız.
String hql = "...";
Query query = em.createQuery(hql);
ÖrnekŞöyle yaparız.
String sql = "select * from mytable";
Query query = em.createNativeQuery(sql);
executeUpdate metoduNesneyi günceller.
Örnek
Şöyle yaparız.
Query query = entityManager.createNativeQuery("UPDATE stocks set price=:price WHERE
id=:id");
query.setParameter("price", stocks.getPrice());
query.setParameter("id" stocks.getId());
query.executeUpdate();
ÖrnekŞöyle yaparız.
Employee employee= (Employee)entityManager.find(Employee.class , 1);
entityManager
.createQuery("update Employee set name = \'xxxx\' where id=1")
.executeUpdate();
getResultList metodu - EntityAçıklaması şöyle.
-If select contains single expression and it's an entity, then result is that entityBu metod yerine TypedQuery kullanılmalı. Şöyle yaparız.
-If select contains single expression and it's a primitive, then result is that primitive
-If select contains multiple expressions, then result is Object[] containing the corresponding primitives/entities
TypedQuery<SimpleEntity> q =
em.createQuery("select t from SimpleEntity t", SimpleEntity.class);
List<SimpleEntity> listOfSimpleEntities = q.getResultList();
for (SimpleEntity entity : listOfSimpleEntities) {
// do something useful with entity;
}
getResultList metodu - Multiple SELECT ExpressionsAçıklaması şöyle. Untyped List nesnesi yani generics kullanmayan List<Object[]> döner.
JPQL queries can also return results which are not entity objects.Örnek
Şöyle yaparız.
for(Object row : (List<Object>) q.getResultList()){
...
}
ÖrnekŞöyle yaparız.
public Map<String, String> getAvailableBorderTypes() {
// create empty map to store results in.
Map<String, String> results = new HashMap<String, String>();
EntityManager em = entityManagerFactory.createEntityManager();
// Construct and run query
String jpaQuery = "SELECT DISTINCT location.mftcc, location.name FROM Location location";
List<Object[]> resultList = em.createQuery(jpaQuery).getResultList();
// Place results in map
for (Object[] borderTypes: resultList) {
results.put((String)borderTypes[0], (String)borderTypes[1]);
return results;
}
getResultList metodu - Result Classes (Constructor Expressions)Örnek
Şöyle yaparız.
@SuppressWarnings("unchecked")
List<Patients> result = jpaQuery.getResultList();
getSingleResult metoduÖrnek
Şöyle yaparız.
String nativeSql = SELECT count(1) FROM my_table WHERE conditions;
Query query = entityManager.createNativeQuery(nativeSql);
int total = ((BigDecimal) query.getSingleResult()).intValue();
ÖrnekSelect cümlesini çalıştırarark tek bir nesne döndürür.
Status status = query.getSingleResult();
Eğer sonuç tek değilse exception atılır.Query query = ...
try{
return q.getSingleResult();
}catch(NoResultException| EntityNotFoundException enfex){
return null;
}catch(NonUniqueResultException ex){
return null;
}
}
list metodujoin fetch ile şöyle yaparız. Join Fetch lazy olan OneToMany ilişkilerde eager veri çekmek için kullanılır.
Query query = session.createQuery("select c from Category c join fetch c.events
where c.parentCategory.categoryId = 1");
//query.setParameter("id", id);
List<Foo> list = query.list();
setFirstResult metoduŞöyle yaparız.
query.setFirstResult(...);
setMaxResults metoduŞöyle yaparız.
query.setMaxResults();
setParameter metodu - named parameterParametreler :name şeklindedir. Sql cümlesi içinde parametrelere ismen erişir ve değer atar.
Örnek
Şöyle yaparız.
query.setParameter("param1",...);
ÖrnekŞöyle yaparız.
entityManager.createQuery("select gne from Entity gne where type(gne) = :subclass")
.setParameter("subclass", GivenNameEntity.class)
.getResultList();
setParameter metodu - ordinal parameter
Parametreler ?index şeklindedir. Şöyle yaparız.Date lastWeekDate = ...;
em.createQuery("SELECT o from Orders o WHERE o.orderDate > ?1")
.setParameter(1, lastWeekDate, TemporalType.DATE);
scroll metoduSelect cümlesinin sonucunu dolaşabilmemizi sağlar. Şöyle yaparız.
ScrollableResults resultScroll = query.scroll(ScrollMode.FORWARD_ONLY);
unwrap metoduHibernate nesnesine dönüştürmek için şöyle yaparız.
entityManager.createNativeQuery("...")
.unwrap(org.hibernate.Query.class)
.setParameter("number", new Integer(number))
.setParameter("userId", userId)
.setParameter("startDate", startDate)
.setParameter("endDate", endDate)
.setResultTransformer(new MyClassTransformer())
.list();
Hiç yorum yok:
Yorum Gönder