...
Code Block | ||||
---|---|---|---|---|
| ||||
CustomService<Phone, Long> ps = ServiceFactory.getCustomService( Phone.class, Long.class ); Phone p = new Phone(); p.setNumber( "777 777 777" ); ps.save( p ); List<Phone> phones = ps.getAll(); for ( Phone phone : phones ) { log.debug( phone.getNumber() ); } |
...
Code Block | ||||
---|---|---|---|---|
| ||||
@Repository( "phoneDao" ) public class PhoneDaoImpl extends HibernateEditableDao<Phone, Long> implements PhoneDao { public void customMethod() { getSession().createSQLQuery( "..." ); } } |
...
Code Block | ||||
---|---|---|---|---|
| ||||
public interface PhpneService extends EditableService<Phone, Long> { } |
Code Block | ||||
---|---|---|---|---|
| ||||
@Service( "phoneService" ) public class PhoneServiceImpl extends EditableServiceImpl<Phone, Long, PhoneDao> implements PhoneService { @Autowired public void setDao( PhoneDao dao ) { this.dao = dao; } @Override @Transactional public Long save( Phone phone ) { dao.customMethod();//obie metody są wykonane w jednej transakcji super.save(phone); } } |
...
Warning | ||
---|---|---|
| ||
Jeżeli w systemie istnieje kilka klas oznaczonych tą samą nawą np. @Service( "phoneService" ) to system nie będzie wiedział którą implementację dopasować dlatego zadziała tylko ostatni z powyższych sposobów. |
...
Code Block | ||||
---|---|---|---|---|
| ||||
PhoneService ps=SpringContext.getBean(PhoneService.class);
Phone p = new Phone();
p.setNumber( "777 777 777" );
ps.save( p );
List<Phone> phones = ps.getAll();
for ( Phone phone : phones )
{
log.debug( phone.getNumber() );
} |