22
33import com .sage .model .weakness .WeaknessModel ;
44
5+ import java .util .ArrayList ;
6+ import java .util .List ;
7+
58public class WeaknessDao extends Dao <WeaknessModel , Integer > {
69
7- public WeaknessDao () {
10+ private static WeaknessDao instance ;
11+
12+ private WeaknessDao () {
813 super ();
914 }
1015
16+ public static WeaknessDao getInstance () {
17+ if (instance == null )
18+ instance = new WeaknessDao ();
19+ return instance ;
20+ }
21+
1122 @ Override
1223 public boolean create (WeaknessModel entity ) {
1324 try {
1425 tx .begin ();
1526 em .persist (entity );
1627 tx .commit ();
17-
1828 return true ;
1929 } catch (Exception e ) {
2030 if (tx .isActive ())
2131 tx .rollback ();
22-
32+
2333 LOGGER .severe (
2434 "[WeaknessDao] Error while trying to persist entity: " + entity .toString () + "\n Rolling back: " + e .getMessage ());
25- e .printStackTrace ();
2635 return false ;
2736 }
2837 }
2938
3039 @ Override
3140 public WeaknessModel read (Integer key ) {
3241 try {
33- return em .find (WeaknessModel .class , key );
42+ tx .begin ();
43+ WeaknessModel weaknessModel = em .find (WeaknessModel .class , key );
44+ tx .commit ();
45+ return weaknessModel ;
3446 } catch (Exception e ) {
3547 LOGGER .severe ("[WeaknessDao] Error while trying to fetch entity with (id)=" + key );
3648 return null ;
@@ -49,4 +61,44 @@ boolean delete(Integer key) {
4961 throw new UnsupportedOperationException ("Unimplemented method 'delete'" );
5062 }
5163
64+ public List <WeaknessModel > readAll () {
65+ String query = "SELECT * FROM weaknesses;" ;
66+
67+ List <Object []> results = em .createQuery (query ).getResultList ();
68+ List <WeaknessModel > weaknessModels = new ArrayList <>();
69+
70+ for (Object [] row : results ) {
71+ WeaknessModel weaknessModel = new WeaknessModel (
72+ ((Number ) row [0 ]).intValue (),
73+ ((Number ) row [1 ]).intValue (),
74+ (String ) row [2 ],
75+ (String ) row [3 ],
76+ (String ) row [4 ],
77+ (String ) row [5 ]
78+ );
79+ weaknessModels .add (weaknessModel );
80+ }
81+
82+ return weaknessModels ;
83+ }
84+
85+ public List <WeaknessModel > fetchAllByVulnerabilityId (Integer vulnerabilityId ) {
86+ String query = "SELECT * FROM weaknesses WHERE vulnerability_id = " + vulnerabilityId + ";" ;
87+
88+ List <Object []> results = em .createQuery (query ).getResultList ();
89+ List <WeaknessModel > weaknessModels = new ArrayList <>();
90+
91+ for (Object [] row : results ) {
92+ WeaknessModel weaknessModel = new WeaknessModel (
93+ ((Number ) row [0 ]).intValue (),
94+ ((Number ) row [1 ]).intValue (),
95+ (String ) row [2 ],
96+ (String ) row [3 ],
97+ (String ) row [4 ],
98+ (String ) row [5 ]
99+ );
100+ weaknessModels .add (weaknessModel );
101+ }
102+ return weaknessModels ;
103+ }
52104}
0 commit comments