Класс конфигурации приложения:
@Configuration
@EnableTransactionManagement
@ComponentScan(basePackages = {"jennom"})
@EnableLoadTimeWeaving
@PropertySource(value = "classpath:jennom.properties")
public class AppContext {
@Bean
public JpaTransactionManager jpaTransactionManager() {
JpaTransactionManager jtm = new JpaTransactionManager();
jtm.setDataSource(this.ds());
jtm.setJpaDialect(new EclipseLinkJpaDialect());
jtm.setPersistenceUnitName("jennomPU");
return jtm;
}
@Bean(destroyMethod = "close")
public DataSource ds() {
BasicDataSource dsNodes = new BasicDataSource();
dsNodes.setDriverClassName("org.apache.derby.jdbc.EmbeddedDriver");
dsNodes.setUrl("jdbc:derby:./db/primer");
dsNodes.setPassword("12345");
dsNodes.setUsername("romka");
return dsNodes;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean eemf = new LocalContainerEntityManagerFactoryBean();
eemf.setDataSource(this.ds());
eemf.setJpaVendorAdapter(elJpaVendorAdapter());
eemf.setPackagesToScan("jennom.jpa");
eemf.setPersistenceUnitName("jennomPU");
eemf.setJpaDialect(new EclipseLinkJpaDialect());
eemf.setSharedCacheMode(SharedCacheMode.ENABLE_SELECTIVE);
return eemf;
}
@Bean
public EclipseLinkJpaVendorAdapter elJpaVendorAdapter() {
EclipseLinkJpaVendorAdapter jpaVendorAdapter = new EclipseLinkJpaVendorAdapter();
jpaVendorAdapter.setDatabase(Database.DERBY);
jpaVendorAdapter.setGenerateDdl(true);
jpaVendorAdapter.setShowSql(true);
jpaVendorAdapter.setDatabasePlatform("org.eclipse.persistence.platform.database.DerbyPlatform");
return jpaVendorAdapter;
}
}
после этого вы можете создавать свой DAO:
@Service
@Repository
@Transactional
public class EjbDaoJPA {
@PersistenceContext(unitName = "jennomPU")
private EntityManager em;
@Transactional(readOnly=true)
public List<JpaNodes> findAllNodesJPQL () {
List<JpaNodes> nodes=em.createNamedQuery("JpaNodes.findAll", JpaNodes.class).getResultList();
return nodes;
}
@Transactional(readOnly=true)
public JpaNodes findNodeJPQL (int id) {
JpaNodes nodes=em.createNamedQuery("JpaNodes.findById", JpaNodes.class)
.setParameter("id", id).getSingleResult();
return nodes;
}
public void removeNode (JpaNodes jpaNode) {
em.remove(jpaNode);
}
public void createNode (JpaNodes jpaNode) {
em.persist(jpaNode);
}
public void editNode (JpaNodes jpaNode) {
em.merge(jpaNode);
}
public void clearAllNodesSQL () {
em.createNativeQuery("delete from nodes");
}
public void clearAllNodesJPQL () {
em.createNamedQuery("JpaNodes.clear", JpaNodes.class);
}
}
Сущность JpaNodes
@Entity
@Cacheable(true)
@Table(name="nodes")
@NamedQueries ({
@NamedQuery(name="JpaNodes.clear",
query="delete from JpaNodes"),
@NamedQuery(name="JpaNodes.findAll",
query="select c from JpaNodes c order by c.ip"),
@NamedQuery(name="JpaNodes.findByIP",
query="select c from JpaNodes c where c.ip = :ip"),
@NamedQuery(name="JpaNodes.findById",
query="select c from JpaNodes c where c.id = :id")
})
public class JpaNodes implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO) /// !!!!!!!! = IDENTITY
private int id;
@Basic
@Column(name = "time", nullable=true, insertable=true, updatable=true, length=255)
private String time="";
@Basic
@Size(min=1,max=5,message="stateFar")
@Column(name = "StateFar", nullable=true, insertable=true, updatable=true, length=255)
private String StateFar="-";
@Basic
@NotNull(message="IP/DNS not null")
//@Pattern(regexp="",message="")
@Column(name = "ip", nullable=false, insertable=true, updatable=true, length=255)
private String ip;
@Basic
@Column(name = "info", nullable=true, insertable=true, updatable=true, length=255)
private String info="";
@Basic
@NotNull(message="Type not null")
@Column(name = "tip", nullable=false, insertable=true, updatable=true, length=255)
private String tip="";
@Basic
@Column(name = "loss", nullable=true, insertable=true, updatable=true, length=255)
private String loss="0";
@Basic
@Size(min=1,max=5,message="state")
@Column(name = "state", nullable=true, insertable=true, updatable=true, length=255)
private String state="-";
...........геттеры + сеттеры + equals + hashCode + toString}
@Configuration
@EnableTransactionManagement
@ComponentScan(basePackages = {"jennom"})
@EnableLoadTimeWeaving
@PropertySource(value = "classpath:jennom.properties")
public class AppContext {
@Bean
public JpaTransactionManager jpaTransactionManager() {
JpaTransactionManager jtm = new JpaTransactionManager();
jtm.setDataSource(this.ds());
jtm.setJpaDialect(new EclipseLinkJpaDialect());
jtm.setPersistenceUnitName("jennomPU");
return jtm;
}
@Bean(destroyMethod = "close")
public DataSource ds() {
BasicDataSource dsNodes = new BasicDataSource();
dsNodes.setDriverClassName("org.apache.derby.jdbc.EmbeddedDriver");
dsNodes.setUrl("jdbc:derby:./db/primer");
dsNodes.setPassword("12345");
dsNodes.setUsername("romka");
return dsNodes;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean eemf = new LocalContainerEntityManagerFactoryBean();
eemf.setDataSource(this.ds());
eemf.setJpaVendorAdapter(elJpaVendorAdapter());
eemf.setPackagesToScan("jennom.jpa");
eemf.setPersistenceUnitName("jennomPU");
eemf.setJpaDialect(new EclipseLinkJpaDialect());
eemf.setSharedCacheMode(SharedCacheMode.ENABLE_SELECTIVE);
return eemf;
}
@Bean
public EclipseLinkJpaVendorAdapter elJpaVendorAdapter() {
EclipseLinkJpaVendorAdapter jpaVendorAdapter = new EclipseLinkJpaVendorAdapter();
jpaVendorAdapter.setDatabase(Database.DERBY);
jpaVendorAdapter.setGenerateDdl(true);
jpaVendorAdapter.setShowSql(true);
jpaVendorAdapter.setDatabasePlatform("org.eclipse.persistence.platform.database.DerbyPlatform");
return jpaVendorAdapter;
}
}
после этого вы можете создавать свой DAO:
@Service
@Repository
@Transactional
public class EjbDaoJPA {
@PersistenceContext(unitName = "jennomPU")
private EntityManager em;
@Transactional(readOnly=true)
public List<JpaNodes> findAllNodesJPQL () {
List<JpaNodes> nodes=em.createNamedQuery("JpaNodes.findAll", JpaNodes.class).getResultList();
return nodes;
}
@Transactional(readOnly=true)
public JpaNodes findNodeJPQL (int id) {
JpaNodes nodes=em.createNamedQuery("JpaNodes.findById", JpaNodes.class)
.setParameter("id", id).getSingleResult();
return nodes;
}
public void removeNode (JpaNodes jpaNode) {
em.remove(jpaNode);
}
public void createNode (JpaNodes jpaNode) {
em.persist(jpaNode);
}
public void editNode (JpaNodes jpaNode) {
em.merge(jpaNode);
}
public void clearAllNodesSQL () {
em.createNativeQuery("delete from nodes");
}
public void clearAllNodesJPQL () {
em.createNamedQuery("JpaNodes.clear", JpaNodes.class);
}
}
Сущность JpaNodes
@Entity
@Cacheable(true)
@Table(name="nodes")
@NamedQueries ({
@NamedQuery(name="JpaNodes.clear",
query="delete from JpaNodes"),
@NamedQuery(name="JpaNodes.findAll",
query="select c from JpaNodes c order by c.ip"),
@NamedQuery(name="JpaNodes.findByIP",
query="select c from JpaNodes c where c.ip = :ip"),
@NamedQuery(name="JpaNodes.findById",
query="select c from JpaNodes c where c.id = :id")
})
public class JpaNodes implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO) /// !!!!!!!! = IDENTITY
private int id;
@Basic
@Column(name = "time", nullable=true, insertable=true, updatable=true, length=255)
private String time="";
@Basic
@Size(min=1,max=5,message="stateFar")
@Column(name = "StateFar", nullable=true, insertable=true, updatable=true, length=255)
private String StateFar="-";
@Basic
@NotNull(message="IP/DNS not null")
//@Pattern(regexp="",message="")
@Column(name = "ip", nullable=false, insertable=true, updatable=true, length=255)
private String ip;
@Basic
@Column(name = "info", nullable=true, insertable=true, updatable=true, length=255)
private String info="";
@Basic
@NotNull(message="Type not null")
@Column(name = "tip", nullable=false, insertable=true, updatable=true, length=255)
private String tip="";
@Basic
@Column(name = "loss", nullable=true, insertable=true, updatable=true, length=255)
private String loss="0";
@Basic
@Size(min=1,max=5,message="state")
@Column(name = "state", nullable=true, insertable=true, updatable=true, length=255)
private String state="-";
...........геттеры + сеттеры + equals + hashCode + toString}
Комментариев нет:
Отправить комментарий