Tag: jpa

如何在JPA中使用枚举

我有一个电影租赁系统的现有数据库。 每部电影都有一个评级属性。 在SQL中,他们使用一个约束来限制这个属性的允许值。 CONSTRAINT film_rating_check CHECK ((((((((rating)::text = ''::text) OR ((rating)::text = 'G'::text)) OR ((rating)::text = 'PG'::text)) OR ((rating)::text = 'PG-13'::text)) OR ((rating)::text = 'R'::text)) OR ((rating)::text = 'NC-17'::text))) 我认为使用Java枚举将约束映射到对象世界将会很好。 但是由于“PG-13”和“NC-17”中的特殊字符,不可能简单地取得所允许的值。 所以我实现了以下枚举: public enum Rating { UNRATED ( "" ), G ( "G" ), PG ( "PG" ), PG13 ( "PG-13" ), R ( "R" […]

JPA CriteriaBuilder – 如何使用“IN”比较运算符

你能帮我如何将下面的代码转换为使用标准构build器的“in”运算符? 我需要通过使用“in”使用列表/数组的用户名进行过滤。 我也尝试使用JPA CriteriaBuilder进行search – “in”方法但是找不到好的结果。 所以,如果你能给我这个主题的参考url,我真的很感激。 谢谢。 这是我的代码: //usersList is a list of User that I need to put inside IN operator CriteriaBuilder builder = getJpaTemplate().getEntityManagerFactory().getCriteriaBuilder(); CriteriaQuery<ScheduleRequest> criteria = builder.createQuery(ScheduleRequest.class); Root<ScheduleRequest> scheduleRequest = criteria.from(ScheduleRequest.class); criteria = criteria.select(scheduleRequest); List<Predicate> params = new ArrayList<Predicate>(); List<ParameterExpression<String>> usersIdsParamList = new ArrayList<ParameterExpression<String>>(); for (int i = 0; i < […]

数据库sorting与编程的Javasorting

我想通过JPA从数据库(MySQL)中获取数据,我希望它通过某个列值进行sorting。 那么,最佳做法是: 从数据库中检索数据作为对象列表(JPA),然后使用一些Java API以编程方式进行sorting。 要么 让数据库使用sortingselect查询对其进行sorting。 提前致谢

Hibernate / JPA DB架构生成最佳实践

我只是想听听Hibernate专家对基于Hibernate / JPA的项目的DB模式生成最佳实践的看法。 特别: 项目刚开始时采用什么策略? build议让Hibernate在这个阶段自动生成模式还是从项目的最早阶段手动创build数据库表更好? 假设在整个项目中使用Hibernate生成模式,在系统发布到生产之前,是否更好地禁用自动模式生成并手动创build数据库模式? 在系统投入生产之后,维护实体类和数据库模式的最佳做法是什么(例如添加/重命名/更新列,重命名表等)?

Spring 3.1 entityManagerFactory java.lang.NoSuchFieldError:NULL错误

我刚刚将Spring 3.0.5迁移到3.1 GA。 我在初始化期间遇到了运行时错 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/spring/infrastructure-config.xml]: Initialization of bean failed; nested exception is java.lang.NoSuchFieldError: NULL … Caused by: java.lang.NoSuchFieldError: NULL at org.springframework.expression.TypedValue.<clinit>(TypedValue.java:32) at org.springframework.expression.spel.support.StandardEvaluationContext.setRootObject(StandardEvaluationContext.java:85) at org.springframework.expression.spel.support.StandardEvaluationContext.<init>(StandardEvaluationContext.java:74) at org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:124) at org.springframework.beans.factory.support.AbstractBeanFactory.evaluateBeanDefinitionString(AbstractBeanFactory.java:1299) at […]

删除的对象将被级联重新保存(从关联中删除删除的对象)

我有以下两个实体: 1-播放列表: @OneToMany(fetch = FetchType.EAGER, mappedBy = "playlist", orphanRemoval = true, cascade = CascadeType.ALL) @OrderBy("adOrder") private Set<PlaylistadMap> PlaylistadMaps = new HashSet<PlaylistadMap>(0); 在保存或更新播放列表实体时,需要使用CascadeType.ALL保存和更新PlaylistadMap集合。 orphanRemoval = true :在删除播放列表实体时需要,也应删除PlaylistadMap引用。 2-播放列表地图: @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "fk_playlist", referencedColumnName = "pkid", nullable = false) private Playlist playlist; 当通过使用getCurrentSession().delete();播放列表getCurrentSession().delete(); 我收到以下例外: org.springframework.dao.InvalidDataAccessApiUsageException: deleted object would be re-saved by cascade (remove deleted object […]

用JUnittesting一个EJB

我应该如何testing一个获得EntityManager实例注入的EJB 3.1? 一个可能的EJB: @Stateless @LocalBean public class CommentService { @PersistenceContext private EntityManager em; public List<Comment> findAll() { TypedQuery<Comment> query = em.createNamedQuery( Comment.FIND_ALL, Comment.class ); return query.getResultList(); } } 一个可能的testing: @Test public void testFindAll() { List<Comment> all = service.findAll(); Assert.assertEquals(8, all.size()); } 我只使用GlassFish 3.1和Eclipse Indigo for Java EE开发人员。 我已经尝试过这样的事情: @Before public void setUp() throws Exception { […]

JPA @OneToMany – >父 – 子参考(外键)

我有一个关于从子实体引用ParentEntities的问题如果我有这样的事情: Parent.java: @Entity(name ="Parent") public class Parent { @Id @Generate….. @Column private int id; @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "parent") private Set<Child> children; simple … getter and setter … } 和Child.java: @Entity(name ="Child") public class Child{ @Id @Generate…. @Column private int id; @ManyToOne private Parent parent; … simple getter an setter } […]

事务范围的持久性上下文和扩展持久性上下文有什么区别?

Transaction-scoped Persistence上下文和Extended Persistence上下文有什么区别?

Java AppEngine:JDO或JPA,如何select?

为在Google AppEngine上运行的Grails应用程序selectJDO或JPA的优点和缺点