我想知道连接数据存储区和搜索API的最佳方法是什么.
我正在寻找的是每当我创建一个实体(例如产品)时,该产品将被添加到搜索索引中.在更新时,索引也应该更新,并且当删除产品时 - 你猜对了 - 应该从搜索索引中删除产品.
在搜索产品时,我想对产品索引进行全文搜索,但不是文档,而是需要真正的实体.可能我需要首先使用索引进行搜索,然后再次调用数据存储区?
最让我担心的是保持数据存储区和搜索索引同步.当然,通过搜索索引和数据存储区不仅会很麻烦,而且我觉得它也可能会给分页带来痛苦.
我想知道是否有些人已经"连接"了数据存储区并以这种方式搜索api以及结果是什么,也许还有一些最佳实践可用.appengine docs并没有说明这个领域.
java google-app-engine jpa gae-search google-cloud-datastore
我正在尝试使用新的Spring 4.0 @RestController从控制器返回一个简单的文本响应:
@RestController
@RequestMapping(value = "/heartbeat")
public class HeartbeatController {
private static final Logger logger = LoggerFactory.getLogger(HeartbeatController.class);
@RequestMapping
public String heartbeat() {
logger.info("Received heartbeat!");
return "I'm Alive!";
}
@RequestMapping(value = "/test", produces = MediaType.TEXT_PLAIN_VALUE)
public String heartbeat2() {
logger.info("Received heartbeat!");
return "I'm Alive!";
}
}
Run Code Online (Sandbox Code Playgroud)
当我访问/心跳然后我回来:
"I'm Alive!"
Run Code Online (Sandbox Code Playgroud)
结果包括双引号,我没想到的.
当我访问/ heartbeat/test然后我得到一个空响应,但我希望我活着!文本.
UPDATE
curl -i http://myserver.com/rest/heartbeat
HTTP/1.1 200 OK内容类型:application/json; charset = UTF-8服务器:开发/ 1.0日期:2013年12月17日星期二18:59:08 GMT缓存控制:无缓存过期:1990年1月1日星期五00:00:00 GMT内容长度:12
"我还活着!"
curl -i -H"Accept:application/json" http://myserver.com/rest/heartbeat HTTP/1.1 200 OK Content-Type:application/json; charset = UTF-8 Server:Development/1.0日期:星期二, 2013年12月17日19:01:12 GMT …
自版本1.7.4.Google App Engine的官方appengine-maven-plugin由Google发布.它有一个任务appengine:devserver来启动本地开发服务器.
这个插件似乎没有任何Maven配置选项.
我想知道我怎么能a)提供jvm标志b)禁用新版本检查(离线工作时)
请注意,到目前为止,我使用的是非官方的net.kindleit maven-gae-plugin,如:
<plugin>
<groupId>net.kindleit</groupId>
<artifactId>maven-gae-plugin</artifactId>
<version>0.9.4</version>
<configuration>
<disableUpdateCheck>true</disableUpdateCheck>
<javaAgent>${env.REBEL_HOME}/jrebel.jar</javaAgent>
<jvmFlags>
<jvmFlag>-noverify</jvmFlag>
<jvmFlag>-Ddatastore.backing_store=${project.basedir}/local_db.bin</jvmFlag>
<jvmFlag>-Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20</jvmFlag>
<jvmFlag>-Drebel.spring_data_plugin=true</jvmFlag>
</jvmFlags>
<wait>true</wait>
</configuration>
<dependencies>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-tools-sdk</artifactId>
<version>${com.google.appengine.version}</version>
</dependency>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-1.0-sdk</artifactId>
<version>${com.google.appengine.version}</version>
</dependency>
</dependencies>
</plugin>
Run Code Online (Sandbox Code Playgroud) 我正在阅读与OAuth2 Security相关的Google Cloud Endpoints文档.我认为这种安全性是针对Google帐户的.
是否支持自定义用户架构进行身份验证?
我想要的是拥有使用Google Cloud Endpoints但针对用户的本地存储(App Engine)进行身份验证的客户端JS应用程序.
Google Clound端点是否适用于此或我是否需要编写自己的安全机制?
出于性能原因,我正在从组件扫描切换到明确声明我的bean.所以基本上我想删除@EnableJpaRepositories它扫描存储库.
我的存储库是扩展的标准接口JpaRepository.我如何申报我的存储库?
我正在使用 docker-compose 和以下脚本运行 pgAdmin:
version: "3.9"
services:
postgres:
image: "postgres:13"
container_name: "postgres"
environment:
POSTGRES_PASSWORD: pwd
ports:
- "5432:5432"
volumes:
- ./initdb:/docker-entrypoint-initdb.d
pgadmin:
image: "dpage/pgadmin4"
container_name: "pgadmin"
environment:
PGADMIN_DEFAULT_EMAIL: pgadmin@mycomp.com
PGADMIN_DEFAULT_PASSWORD: secret
links:
- postgres:postgres
ports:
- 5050:80
Run Code Online (Sandbox Code Playgroud)
该脚本使用PGADMIN_DEFAULT_EMAIL和PGADMIN_DEFAULT_PASSWORD来更改默认的 pgAdmin 凭据。
然而,当我在开发机器上运行这个 docker 实例时,我想自动登录到 pgAdmin。
是否可以禁用登录/自动登录?
启动我的应用程序时,我会在每个课程中看到此警告:
WARN [DataNucleus.MetaData] - Class com.mycomp.MyClass was specified in persistence-unit myPersistenceUnit but not annotated, so ignoring
Run Code Online (Sandbox Code Playgroud)
该应用程序正确启动所以没有直接问题,但我想知道这个即将到来的形式,以及如何避免id.
我的persistence.xml看起来像:
<persistence-unit name="myPersistenceUnit">
<provider>org.datanucleus.api.jpa.PersistenceProviderImpl</provider>
<properties>
<property name="datanucleus.ConnectionURL" value="appengine" />
<property name="datanucleus.NontransactionalRead" value="true" />
<property name="datanucleus.NontransactionalWrite" value="true" />
<property name="datanucleus.appengine.datastoreEnableXGTransactions" value="true" />
<property name="datanucleus.jpa.addClassTransformer" value="false" />
</properties>
</persistence-unit>
Run Code Online (Sandbox Code Playgroud)
我正在使用Spring在Google App Engine上运行我的应用程序.
但我找不到警告的起源.似乎有些东西告诉我的应用程序对所有类进行一些检查.
PS:我正在定义我的entityManagerFactory,如下所示:
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();
entityManagerFactory.setPersistenceUnitName("myPersistenceUnit");
entityManagerFactory.setPersistenceUnitPostProcessors(new ClasspathScanningPersistenceUnitPostProcessor("com.mycomp.domain"));
return entityManagerFactory;
}
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏.
我遇到了https://code.google.com/p/hamcrest/issues/detail?id=130,为Hamcrest匹配器添加了一些糖语法.但这个想法遭到了Hamcrest开发者的拒绝.
任何其他聪明的想法,通过避免在longs后面输入L来使测试更具可读性?
@Test
public void test1() {
int actual = 1;
assertThat(actual, is(1));
}
@Test
public void test2() {
long actual = 1L;
assertThat(actual, is(1)); // fails as expected is <1> but result was <1L>
// assertThat(actual, is(1L)); off course works..
}
@Test
public void test3() {
Long actual = new Long(1);
assertThat(actual, is(1)); // fails as expected is <1> but result was <1L>
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
使用默认Java语言(==),标准junit assert(assertTrue)和hamcrest is()方法比较例如int和long时的差异.似乎奇怪的是,hamcrest doest不支持匹配/比较long vs int,其余的是.
@Test
public void test2() {
long …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来实现一个响应式工作目录,我至少想要显示第一个和最后一个文件夹.它应该基于终端中的可用.例如$(exprtput cols之类的东西- 35)}.
想象一下当前的工作目录是什么 ~/workspace/i/keep/my/projects/project1/src
然后我想显示提示,如:
~/workspace/../src
如果终端足够大我想拥有:
~/workspace/../project1/src
要么
~/workspace/../projects/project1/src
~/workspace/../my/projects/project1/src
所以前进.
如果有足够的地方,它甚至应该显示完整的路径.为了赢得空间,家庭目录应始终显示为~.
这是否可以在OSX上使用纯bash脚本?
我正在尝试使用Spring Data JPA 1.8新的jdk日期转换器.
在我的Spring Boot应用程序中,我添加了一个配置类,如:
@Configuration
@ComponentScan(basePackageClasses = LocalContainerEntityManagerFactoryBean.class)
@EnableJpaAuditing
public class DataConfig {
}
Run Code Online (Sandbox Code Playgroud)
这是如何org.springframework.data.jpa.convert.threeten.Jsr310JpaConverters应用自动转换的建议.我也使用像org.springframework.data.jpa.domain.support和的直接包引用org.springframework.data.jpa.convert.threeten.
问题是jdk 8日期转换不会发生导致sql异常.
但是,当我手动将转换器应用于我的域类时,如:
@Convert(converter = Jsr310JpaConverters.LocalDateConverter.class)
private LocalDate birthdate;
Run Code Online (Sandbox Code Playgroud)
然后转换确实有效.
java ×5
spring ×4
jpa ×3
spring-data ×2
autoboxing ×1
bash ×1
datanucleus ×1
docker ×1
gae-search ×1
hamcrest ×1
macos ×1
maven ×1
oauth-2.0 ×1
pgadmin ×1
pgadmin-4 ×1
postgresql ×1
prompt ×1
rest ×1
spring-4 ×1
spring-mvc ×1