我正在尝试@CacheableSpring 3.1 的注释支持,并想知道是否有任何方法可以通过设置TTL使缓存数据在一段时间后清除?现在我可以看到我需要通过使用它来清除它@CacheEvict,并且通过使用它@Scheduled我可以自己做一个TTL实现但是对于这么简单的任务似乎有点多了?
根据文档,hibernate 3.6应该支持java.util.UUID类型.但是当我将其映射为:
@Id protected UUID uuid;
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [test-applicationContext.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: persistenceUnit] Unable to build EntityManagerFactory
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420) ~[spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) ~[spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) ~[spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) ~[spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) ~[spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) ~[spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findDefaultEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:529) ~[spring-orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:495) ~[spring-orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.resolveEntityManager(PersistenceAnnotationBeanPostProcessor.java:656) ~[spring-orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.getResourceToInject(PersistenceAnnotationBeanPostProcessor.java:629) ~[spring-orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:147) ~[spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84) ~[spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:338) ~[spring-orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
... …Run Code Online (Sandbox Code Playgroud) 当我尝试使用JPA/hibernate持久化一个名为"user"的实体时,它不起作用.该表未创建,因为user是postgresql中的保留字.除了命名表之外还有什么方法可以使其工作吗?
我想做这样的事情:
select count(*) from (select ...)
Run Code Online (Sandbox Code Playgroud)
(就像在SQL中一样),但在JPA中.
关于我将如何做的任何想法?
我想这样做但是使用标准API代替:
select count(distinct e) from Event e, IN(e.userAccessPermissions) p where p.principal = :principal and p.permission in (:permissions)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我如何使用JPA标准API执行以下操作:
select count(distinct column1, column2) from table
Run Code Online (Sandbox Code Playgroud)
使用CriteriaBuilder.countDistinct在一个列/路径上执行此操作很简单,但是如何在两个路径/列上执行此操作?
我读过有关Spring ACL的内容,但它看起来并不是很有能力.例如:
您使用什么ACL?将ACL与域模型分离是否巧妙?
我的应用程序崩溃在以下行:
sqlite3_prepare_v2(db, [sql UTF8String], -1, &pStmt, 0);
Run Code Online (Sandbox Code Playgroud)
在FMDB sqlite包装器的方法中:
- (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray*)arrayArgs orVAList:(va_list)args {
if (![self databaseExists]) {
return 0x00;
}
if (inUse) {
[self warnInUse];
return 0x00;
}
[self setInUse:YES];
FMResultSet *rs = nil;
int rc = 0x00;
sqlite3_stmt *pStmt = 0x00;
FMStatement *statement = 0x00;
if (traceExecution && sql) {
NSLog(@"%@ executeQuery: %@", self, sql);
}
if (shouldCacheStatements) {
statement = [self cachedStatementForQuery:sql];
pStmt = statement ? [statement statement] : 0x00;
}
int numberOfRetries = 0; …Run Code Online (Sandbox Code Playgroud) 在具有两种类型实体的方案中,父级和子级:
家长 - @OneToMany收集儿童;
默认设置是对子集合进行延迟加载.这种模式适用于少数儿童,但如果数量增长很大,这似乎是不可持续的.因此,对于我认为子项数量非常大的场合,我使用了分页的服务方法(比如"getChildren(Parent parent,int offset,int count)").
问题是:这是处理这种情况的最佳方法吗?还是我错过了什么?
谢谢,彼得
jpa ×6
hibernate ×5
java ×5
spring ×3
criteria-api ×2
jpa-2.0 ×2
acl ×1
jpql ×1
objective-c ×1
orm ×1
postgresql ×1
uuid ×1