Ich bin gerade dabei, JPA in mein Projekt zu integrieren, das ich zuvor HibernateTemplate
verwendet habe.Ich kann JpaRepository in DAO nicht autowire
Ich habe folgendes zu konfigurieren:
@Configuration
@EnableJpaRepositories("package1, package2")
@EnableTransactionManagement
public class JpaConfiguration {
@Bean
public EntityManagerFactory entityManagerFactory(){
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.getJpaDialect();
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan("package1, package2");
factory.afterPropertiesSet();
return factory.getObject();
}
Unten ist die Klasse I aus dem Repository zu nennen bin versucht, aber ich erhalte eine Fehlermeldung, wenn ich über den Anruf schweben sagen: no-static field applicantEntryRepository cannot be referenced from a static context
.
public static PsHeldSkillEntry retrievePsHeldSkillEntry(SkillEntry primaryKey) throws DataAccessException {
//HibernateTemplate ht = new HibernateTemplate(ComponentBuilder.getSessionFactory());
//SkillEntry skill = ht.get(SkillEntry.class, primaryKey);
SkillEntry skill = applicantEntryRepository.getOne(primaryKey);
return skill;
}
}
applicantEntryRepository
ist an der Spitze der Klasse autowired wie so:
@Controller
public class ApplicantEntryDAO {
@Autowired
ApplicantEntryRepository applicantEntryRepository;
Repository
public interface ApplicantEntryRepository extends JpaRepository<SkillEntry,Long> {
}
Enitiy:
@Entity
@Table(name = "HELD_SKILL")
@IdClass(SkillEntryPK.class)
public class SkillEntry
{