当前位置: 首页 > news >正文

服务好的网站制作建设怎样启动wordpress

服务好的网站制作建设,怎样启动wordpress,python网站开发代码,wordpress移动底部菜单插件JPA提供了几种查询数据的方法。 可以根据各种标准#xff08;例如#xff0c;所使用的语言#xff08;SQL与JPQL#xff09;或查询是静态的#xff08;编译时间#xff09;还是动态的#xff08;执行时间#xff09;#xff09;对此类替代方案进行分类。 静态查询是使… JPA提供了几种查询数据的方法。 可以根据各种标准例如所使用的语言SQL与JPQL或查询是静态的编译时间还是动态的执行时间对此类替代方案进行分类。 静态查询是使用Entity类定义本身中的注释NamedQuery javax.persistence.NamedQuery 和NamedQueries javax.persistence.NamedQueries 定义的 NamedQuery(namefindAllCustomersWithName,querySELECT c FROM Customer c WHERE c.name LIKE :custName) 另一方面 EntityManager提供的方法createQuery…和createNativeQuery…分别采用JPQL或SQL查询。 因此可以在编译或执行时定义查询。 注意 建议始终使用Query中的 setParameter…方法使用参数化查询以避免SQL注入漏洞。 标准API 但是JPA提供了另一种查询对象的方法 Criteria API 。 确实切换到JPA的动机之一是处理对象而不是SQL方言不是吗 让我们看一个示例代码。 实体定义 Entity public class User {Idprivate Integer userId;BasicColumn(length15, nullablefalse)private String name;BasicColumn(length64, nullablefalse)private String userDigestedPasswd;BasicColumn(length50, nullabletrue)private String email;BasicColumn(nullablefalse)public Integer privilegeLevel;BasicColumn(nullablefalse)private Boolean active; } 让我们查询数据库并检查结果使用JUnit public class UserTest {Testpublic void testUserCriteria(){ EntityManagerFactory emf null; EntityManager em null; try {emf Persistence.createEntityManagerFactory(criteria);em emf.createEntityManager();final CriteriaBuilder cb em.getCriteriaBuilder();final CriteriaQueryUser q cb.createQuery(User.class);final RootUser users q.from(User.class);final Predicate condition cb.equal(users.get(privilegeLevel), 5);q.select(users).where(condition).orderBy(cb.asc(users.get(userId)));em.getTransaction().begin();ListUser result em.createQuery(q).getResultList();em.getTransaction().commit();assertNotNull(result);assertEquals(2, result.size());assertEquals(1, (int)result.get(0).getUserId());assertEquals(Pepe, result.get(0).getName());assertEquals(3, (int)result.get(1).getUserId());assertEquals(Dolores, result.get(1).getName());} catch (Exception e) {fail(Unexpected Exception e.getMessage()); } finally {if (em ! null)em.close();if (emf ! null)emf.close(); } } } 以下几行显示查询的创建 final CriteriaBuilder cb em.getCriteriaBuilder();final CriteriaQueryUser q cb.createQuery(User.class);final RootUser users q.from(User.class);final Predicate condition cb.equal(users.get(privilegeLevel);q.select(users).where(condition).orderBy(cb.asc(users.get(userId 首先从EntityManager获得CriteriaBuilder 。 然后获取一个CriteriaQuery实例将该类设置为保存结果。 在我们的例子中 User.class final CriteriaBuilder cb em.getCriteriaBuilder(); final CriteriaQueryUser q cb.createQuery(User.class); 接下来必须设置要对其运行查询的实体 final RootUser users q.from(User.class); 现在是时候设置查询匹配条件了。 在示例代码中条件只是属性privilegeLevel等于5 final Predicate condition cb.equal(users.get(privilegeLevel), 5); 最后构建查询以在Root上添加条件。 也可以设置分组和排序选项即对userId设置升序排序 q.select(users).where(condition).orderBy(cb.asc(users.get(“userId”))); 请查看CriteriaBuilder中的不同选项。 可以在CriteriaQuery中找到分组和排序选项。 使用元模型进行编译时检查 请注意我们刚刚构建的查询需要跟踪对象属性名称。 例如要构建查询请使用属性privilegeLevel的名称。 但是如果稍后更改属性名称则代码将编译并且仅在运行时失败 final CriteriaQueryUser q cb.createQuery(User.class);final RootUser users q.from(User.class);final Predicate condition cb.equal(users.get(privilegeLevel), 5);q.select(users).where(condition).orderBy(cb.asc(users.get(userId))); 那不好 幸运的是使用元模型我们将能够构建编译时检查的查询。 可以在The Java EE6 Tutorial中找到简短的介绍。 使用元模型代码将引用对象的SingularAttribute而不是使用包含对象属性名称的String。 因此如果稍后更改对象属性则编译器将为我们标记该属性。 首先必须创建对应的元模型类 EntityType 。 尽管可以通过多种方法实现但对于openJPA实现最简单的方法可能是添加openJPA构建标志 -Aopenjpa.metamodel true 。 因此我们创建了User_类它是User的对应元模型类 * Generated by OpenJPA MetaModel Generator Tool. **/ package com.wordpress.tododev.criteria.entities; import javax.persistence.metamodel.SingularAttribute; javax.persistence.metamodel.StaticMetamodel (valuecom.wordpress.tododev.criteria.entities.User.class) javax.annotation.Generated (valueorg.apache.openjpa.persistence.meta.AnnotationProcessor6,dateMon Mar 04 16:47:46 CET 2013) public class User_ {public static volatile SingularAttributeUser,Boolean active;public static volatile SingularAttributeUser,String email;public static volatile SingularAttributeUser,String name;public static volatile SingularAttributeUser,Integer privilegeLevel;public static volatile SingularAttributeUser,String userDigestedPasswd;public static volatile SingularAttributeUser,Integer userId; } 如果将此类添加到代码库中则以后对User类的任何更改都不会引起注意。 而且将自动生成的项目添加到代码版本控制系统中不是一个好主意。 使用ant maven或类似工具可以添加目标以创建元模型类。 在更改JPA实体后应执行该目标。 也可以使用IDE。 例如对于使用Eclipse的只需要已经提到编译标志添加属性- Java的反编译注解处理器和的libJAR包含所选择的JPA实现第厂路内注释处理器的注释处理器可能导致自动模式下的编译问题前提是必须在使用它的代码之前编译元模型类。 让我们向套件添加另一个测试。 这个不会提供包含属性名称的String而是使用metamodel类 Testpublic void testUserCriteriaMetaModel(){EntityManagerFactory emf null;EntityManager em null;try {emf Persistence.createEntityManagerFactory(criteria);em emf.createEntityManager();final CriteriaBuilder cb em.getCriteriaBuilder();final CriteriaQueryUser q cb.createQuery(User.class);final Metamodel m em.getMetamodel();final RootUser user q.from(m.entity(User.class));final Predicate condition cb.equal(user.get(User_.privilegeLevel), 5);q.select(user).where(condition).orderBy(cb.asc(user.get(User_.userId)));em.getTransaction().begin();ListUser result em.createQuery(q).getResultList();em.getTransaction().commit();assertNotNull(result);assertEquals(2, result.size());assertEquals(1, (int)result.get(0).getUserId());assertEquals(Pepe, result.get(0).getName());assertEquals(3, (int)result.get(1).getUserId());assertEquals(Dolores, result.get(1).getName()); } catch (Exception e) {fail(Unexpected Exception e.getMessage());} finally {if (em ! null)em.close();if (emf ! null)emf.close();}} 更相关的更改是user.getUser_.privilegeLevel而不是users.get“ privilegeLevel”和   user.getUser_.userId而不是   users.get“ userId”。 从GitHub下载源代码。 翻译自: https://www.javacodegeeks.com/2014/08/compile-time-checking-jpa-queries.html
http://www.pierceye.com/news/829081/

相关文章:

  • 网站建设是什么?南京文化云网站建设
  • 对比色网站设计wordpress 文件重命名
  • 企业免费网站建设模板怎么注册公司 需多少钱
  • 珠海网站建设厚瑜如何做推广网站
  • 山东省城乡建设部网站首页给了几张图让做网站
  • 吉林省建设标准化网站最新网球赛事新闻
  • eclipse tomcat 网站开发微信公众号手机怎么登录
  • 苏州市吴江区住房和城乡建设局网站网站建设需要具备什么条件
  • 用记事本做网站怎么添加表格媒体库wordpress
  • 河北智能网站建设网站建设 书
  • 个人网站模板怎么做网站开发接私活的经理
  • 律师事务所手机网站网站开发过程模型
  • 建筑培训网站系统开发包括什么
  • 出售家教网站模板广告设计公司管理
  • 松原网站推广wordpress主题更新了
  • wordpress 手机端模板百度seo标题优化软件
  • 货架网站开发特卖网站设计
  • 网站首页设计图片简约简单的明星个人网站建设论文
  • 织梦程序来搭建网站vip视频解析网站建设
  • 网站的管理上海创新网站建设
  • 企业对比网站西安做网站公司怎么样
  • 网站开发好做还是平面好做商务网页设计与制作是什么
  • 个人业务网站带后台凡科网站建设分类模块怎么弄
  • 在百度做网站需要什么资料appstore正版下载
  • wordpress怎么做404页面合肥seo软件
  • 建设网站挂广告赚钱免费个人网站源码
  • 网站ico图标动漫设计学什么内容
  • fireworks做网站定制做网站费用
  • 建设门户网站所需优秀营销网站设计
  • 行业网站建设教程办一家建筑公司流程