我有一个简单的控制器动作:
public class CategoriesController
{
@RequestMapping(value = { "/", "" })
public String list(
Model model,
@PageableDefault(size = CategoriesController.PAGE_LIMIT) Pageable pager
)
{
// load page data
Page<Category> page = this.categoryService.findAll(pager);
/* action logic here */
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的pom.xml片段:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
<version>1.6.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.5.0.RELEASE</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
添加到我之后applicationContext.xml:
<bean class="org.springframework.data.web.config.SpringDataWebConfiguration"/>
Run Code Online (Sandbox Code Playgroud)
我有以下错误:
org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.data.domain.Pageable]: Specified …Run Code Online (Sandbox Code Playgroud) 我的文档结构如下:
{
_id: "A",
groups:[{
groupId: "someId",
groupName: "someName",
params: {
type1: ["a", "b"],
type2: ["c", d]
}
}],
config: {
person: {}
dataDetails: {
dataTypeDetails: {},
dataList: ["dt1", "dt2"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的Spring Data MongoDB模型类型如下所示:
// Imports etc.
@Document
public class Entity {
@Id
private String _id;
private List<Group> groups;
private Config config;
// setters and getters
public class Group {
private String groupId;
private String groupName;
private ParamData params;
// setter and getters
}
public class ParamData { …Run Code Online (Sandbox Code Playgroud) 是否可以将Spring Boot配置为使用MultiTenantConnectionProvider,以便我系统的每个客户端都连接到自己的私有数据库?
具体来说,我希望使用内置的hibernate支持多租户:
这是我所追求的那种配置的一个例子,但我无法弄清楚如何在Spring Boot设置中使用它:
我已经尝试将这些属性添加到application.properties:
spring.jpa.hibernate.multiTenancy=DATABASE
spring.jpa.hibernate.tenant_identifier_resolver=com.mystuff.MyCurrentTenantIdentifierResolver
spring.jpa.hibernate.multi_tenant_connection_provider=com.mystuff.MyMultiTenantConnectionProviderImplX
Run Code Online (Sandbox Code Playgroud)
我也试着编码了我自己CurrentTenantIdentifierResolver和MultiTenantConnectionProvider,并试图从我的主要@Configuration豆服务这些了:
@Bean
public CurrentTenantIdentifierResolver currentTenantIdentifierResolver() {
return new CurrentTenantIdentifierResolver() {
public String resolveCurrentTenantIdentifier() {
// this is never called ...
}
public boolean validateExistingCurrentSessions() {
// this is never called ...
}
};
}
@Bean
public MultiTenantConnectionProvider multiTenantConnectionProvider() {
return new AbstractMultiTenantConnectionProvider() {
protected ConnectionProvider getAnyConnectionProvider() {
// this is never called ...
}
protected ConnectionProvider selectConnectionProvider(String s) {
// this is never …Run Code Online (Sandbox Code Playgroud) 对于Java枚举类型,我了解到MongoDB有两种解决方案:序列化和使用Jackson的ObjectMapper.MongoRepository可以使用这些方法中的任何一种使用枚举数据类型,或者我必须编写自定义存储库吗?
我试图通过Spring Boot和Spring Data实现鉴别器实现的多租户.
我创建了一个抽象类来表示一个多租户实体.与此类似的东西:
@MappedSuperclass
@FilterDefs({@FilterDef(name = "multi-tenant", parameters = {@ParamDef(name = "tenant", type = "string")})})
@Filter(name = "multi-tenant", condition = "tenant = :tenant")
public abstract class MultiTenantEntity extends GenericEntity {
@Transient
private transient String savedTenant;
@PostLoad
private void onLoad() throws Exception {
this.savedTenant = this.tenant;
onEntityModification();
}
@PrePersist
private void onPersist() {
if (getId() == null || getId().equals(0l)) {
tenant = SecurityUtil.getCurrentTenant();
}
}
@PreUpdate
@PreRemove
private void onEntityModification() throws Exception {
String currentTenant = SecurityUtil.getCurrentTenant();
if (!currentTenant.equals(tenant) || …Run Code Online (Sandbox Code Playgroud) 使用Springs自动实现的存储库是否可以限制findAll方法的结果大小?
我正在尝试在界面中声明以下内容:
List<XY> findAllTopTen();
Run Code Online (Sandbox Code Playgroud)
不幸的是,它不起作用(这)方式......
在为MongoDB运行Java应用程序时,我有以下异常:
[localhost:27017] org.mongodb.driver.cluster : Exception in monitor thread while connecting to server localhost:27017 while accessing MongoDB with Java
Run Code Online (Sandbox Code Playgroud)
调用堆栈如下:
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.connection.SocketStream.open(SocketStream.java:63) ~[mongodb-driver-core-3.0.4.jar:na]
at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:114) ~[mongodb-driver-core-3.0.4.jar:na]
at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:127) ~[mongodb-driver-core-3.0.4.jar:na]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_45]
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) ~[na:1.8.0_45]
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) ~[na:1.8.0_45]
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_45]
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_45]
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) ~[na:1.8.0_45]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_45]
at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_45]
at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:50) ~[mongodb-driver-core-3.0.4.jar:na]
at com.mongodb.connection.SocketStream.open(SocketStream.java:58) ~[mongodb-driver-core-3.0.4.jar:na]
... 3 common frames omitted
Run Code Online (Sandbox Code Playgroud)
这两个名字都不属于我的申请.我在本地主机上也没有MONGODB服务器.我正在使用远程主机并稍后进行设置.关于Mongo的任何陈述之前都会发生异常.
UPDATE
这可能是一些 …
我正在使用Spring Data的Querydsl集成来使用谓词执行我的查询.
findAll(predicate, pageable)
Run Code Online (Sandbox Code Playgroud)
有没有办法转储执行的实际原始查询/命令?
我也查看了这个问题的答案,它对我不起作用. 配置MongoDB Java驱动程序的日志记录
- 更新 - 我设法通过在application.properties(而不是log4j.properties)中添加logging.level.org.mongodb.driver = DEBUG来使日志工作正常工作
但是,我仍然无法看到正在执行的原始查询:
2016-03-23 21:50:56 DEBUG查询:56 - 查询完成2016-03-23 21:50:56 DEBUG查询:56 - 在连接上发送命名空间testdb.reservation的查询[connectionId {localValue:4,serverValue: 42631}]到服务器ds046785.mongolab.com:39186
我是Spring Data和Spring MVC的新手,我不明白为什么我会得到空的内容:
@RequestMapping(value="/pages", method=RequestMethod.GET)
@ResponseBody
public Page<Client> contactsPages(@RequestParam int page, @RequestParam int size) {
Pageable pageable = new PageRequest(page, size, new Sort("id"));
Page<Client> pageResult = clientRepository.findAll(pageable);
return pageResult;
}
Run Code Online (Sandbox Code Playgroud)
我测试网址时json的结果是:
{"content":[],"last":true,"totalElements":2,"totalPages":1,"size":5,"number":1,"sort":[{"direction":"ASC","property":"id","ignoreCase":false,"nullHandling":"NATIVE","ascending":true}],"first":false,"numberOfElements":0}
Run Code Online (Sandbox Code Playgroud)
如果您有使用Spring Data和Spring MVC以及AngularJS制作可分页请求的好示例; 这对我来说将是一个很大的帮助.
现在我有一个类User,我array从jsp或获得了一个请求数据html.
列出这个 Integer[] arr=[5,6,9,10,62,52,21]
然后我使用两种方法来完成膨胀删除操作.
@Transactional
@Override
public void deleteUser(Integer id) {
oneRepository.delete(id);
}
@Transactional
@Override
public void deleteSomeUser(Integer[] ids) {
for (Integer id : ids) {
deleteUser(id);
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道如果这是一种更有效的方法来完成这个动作.
你可以看到我的日志:它似乎不太好!
[94, 95, 91, 92, 93]
Hibernate:
delete
from
sshh_user
where
ID=?
Hibernate:
delete
from
sshh_user
where
ID=?
Hibernate:
delete
from
sshh_user
where
ID=?
Hibernate:
delete
from
sshh_user
where
ID=?
Hibernate:
delete
from
sshh_user
where
ID=?
Hibernate:
select
count(practice0_.ID) as col_0_0_
from
sshh_user …Run Code Online (Sandbox Code Playgroud) spring-data ×10
java ×6
spring ×4
hibernate ×3
mongodb ×3
spring-mvc ×3
spring-boot ×2
querydsl ×1
remote-host ×1