-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathexception.txt
executable file
·73 lines (56 loc) · 3.99 KB
/
exception.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#"Ñâÿçûâàíèå äàííûõ:"
òàáëèöà Event ññûëàåòñÿ íà òàáëèöó Action ÷åðåç êëþ÷ ID_ACTION, òî åñòü
EVENT.ID_ACTION=ACTION.ID, â ýòîì ñëó÷àå ìîæíî ñîçäàòü ïîëå â Event
ñîçäàåì ïîëå â òàáëèöå, êîòîðàÿ ññûëàåòñÿ íà äðóãóþ òàáëèöó (EAGER - ïðèñîåäèíèòü ïðè ñîçäàíèè îáúåêòà )
@ManyToOne(targetEntity=Action.class,fetch=FetchType.EAGER)
@JoinColumn(name="ID_ACTION",nullable=true,columnDefinition="id",insertable=false, updatable=false)
private Action action;
public Action getAction(){
return this.action;
}
------------------------------------------------
session.createCriteria(Action.class).add(Restrictions.eq("id", 10)).uniqueResult()
#"âîçâðàùàåò null, åñëè íåò äàííûõ, òî åñòü íåëüçÿ äîïóñêàòü â ýòîì ñëó÷àå âûïîëíåíèå:"
Action action=(Action)session.createCriteria(Action.class).add(Restrictions.eq("id", 10)).uniqueResult()
#"òî åñòü â ñëó÷àå íå íàõîæäåíèÿ çàïèñè ñ êîäîì ID - NullPointerException (extends RuntimeException)"
------------------------------------------------
Action action=(Action)session.createCriteria(Action.class).add(Restrictions.lt("id", 10)).uniqueResult();
#"äàííûé çàïðîñ ïîäðàçóìåâàåò ïîëó÷åíèå ïåðâîãî çíà÷åíèÿ èç ñïèñêà, "
#"íî áóäåò âûáðîøåíî èñêëþ÷åíèå org.hibernate.NonUniqueResultException"
# íóæíî èñïîëüçîâàòü setMaxResult(1).list().get(0)
------------------------------------------------
#"Ïîëó÷åíèå îáúåêòîâ èç SQL çàïðîñîâ:"
List<Event> list=(List<Event>)session.createSQLQuery("SELECT * FROM EVENT WHERE EVENT.IS_SENDED IS NULL")
.addEntity(Event.class) // ïîëó÷åíèå îáúåêòîâ êàê ñóùíîñòåé, èíà÷å - Object[]
.setMaxResults(5)
.list();
List<Event> list=(List<Event>)session.createSQLQuery("SELECT * FROM EVENT WHERE EVENT.IS_SENDED IS NULL")
.addEntity("database.wrap.Event") // óêàçàòü ÏÎËÍÛÉ ïóòü ê êëàññó
.setMaxResults(5)
.list();
------------------------------------------------
#"ïîëó÷åíèå çàïðîñîâ èç SQL áóäåò âàëèäíî äëÿ ñëó÷àÿ:"
List<Event> list=(List<Event>)session.createSQLQuery("select event.*, action.* from event inner join action on action.id=event.id_action")
.addEntity("database.wrap.Event").setMaxResults(5).list();
#"òî åñòü ìîæíî ñäåëàòü âûâîä ÷òî Hibernate áåðåò ïåðâûé èç ñïèñêà SELECT, íî ýòî íå òàê"
#"ñëåäóþùèé îïåðàòîð òàê æå âûäàåò äàííûå"
List<Event> list=(List<Event>)session.createSQLQuery("select action.*, event.* from event inner join action on action.id=event.id_action")
.addEntity("database.wrap.Event").setMaxResults(5).list();
#"ñëåäóþùèé îïåðàòîð òàê æå âûäàåò äàííûå â âèäå îáúåêòîâ Event"
List<Event> list=(List<Event>)session.createSQLQuery("select event.id, event.date_sensor, event.date_camera, event.id_event_type from event inner join action on action.id=event.id_action")
.addEntity("database.wrap.Event").setMaxResults(5).list();
#"ñëåäîâàòåëüíî ýòî ðàâíîñèëüíî SQL çàïðîñó:"
List<Event> list=(List<Event>)session.createSQLQuery("select event.id, event.date_sensor, event.date_camera, event.id_event_type, 'c:\temp.gdb' filename, 0 id_action, null is_sended from event inner join action on action.id=event.id_action").addEntity("database.wrap.Event").setMaxResults(5).list();
#"ÂÛÂÎÄ: èç çàïðîñà ïîñëåäîâàòåëüíî áåðóòñÿ ïîëÿ äëÿ óêàçàííîãî êëàññà, ê êîòîðîìó ïðèâîäÿòñÿ âñå îáúåêòû - setEntity"
-----------------------------------------------
#"Ïðèìåð çàïðîñà äëÿ èçìåíåíèÿ äàííûõ â SQL âèäå "
SQLQuery query=session.createSQLQuery("UPDATE EVENT SET IS_SENDED=1 WHERE DATE_SENSOR<:date_end");
query.setDate("date_end", calendar.getTime());
System.out.println("Quantity:"+query.executeUpdate());
-----------------------------------------------
#Ïðèìåð çàïðîñà ñ Join
KindDescription kindDescription=(KindDescription)session.createCriteria(KindDescription.class)
.createAlias("kind", "kind", CriteriaSpecification.INNER_JOIN)
.add(Restrictions.eq("kind.name", " î÷åðåäè íà îáðàáîòêó"))
.add(Restrictions.eq("description",(String)this.selectVariants.getValue()))
.uniqueResult();