小编Mar*_*usz的帖子

如何在Spring Data JPA中将分页与条件查询相结合?

我使用PagingAndSortingRepository和findAll(Pageable pageable)方法来分页我的数据.我认为没有办法提供任何条件.例如,有时我想选择和分页地址city = NY.有没有办法同时提供条件和分页?

java spring jpa spring-data spring-data-jpa

13
推荐指数
1
解决办法
2万
查看次数

JdbcTemplate查询关闭数据库连接

我使用jpa与hibernate.我有以下方法:

@Transactional
public void myMethod(){
...
firstJDBCTemplateQuery();
secondJDBCTemplateQuery();
...

}
Run Code Online (Sandbox Code Playgroud)

firstJDBCTemplateQuery有效,但它关闭了与数据库的连接.当第二个secondJDBCTempolateQuery执行时

java.sql.SQLException: Connection is closed exception

被抛出的原因是什么

org.springframework.transaction.TransactionSystemException: Could not roll back JPA transaction ...

我的配置: 编辑

     <bean id="dataSource"
            class="org.apache.commons.dbcp.BasicDataSource">
            <property name="driverClassName" value="${jdbc.driverClassName}" />
            <property name="url" value="${jdbc.url}" />
            <property name="username" value="${jdbc.username}" />
            <property name="password" value="${jdbc.password}" />

        </bean>


        <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
            <property name="entityManagerFactory" ref="emf" />

        </bean>

        <tx:annotation-driven transaction-manager="transactionManager" />
<bean id="emf"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
        </property>
        <property name="packagesToScan" value="com.emisoft.ami.user.domain" />

        <property name="jpaProperties"> …
Run Code Online (Sandbox Code Playgroud)

spring hibernate jpa jdbctemplate

9
推荐指数
2
解决办法
2万
查看次数

Relation ManyToOne,javax.persistence.EntityExistsException:具有相同标识符值的另一个对象已与会话关联

我花了很多时间搜索这个bug,但我无法解决这个问题.我使用Spring JPA与Hibernate和Postgre.我有两个实体Location和Ap:

    CREATE TABLE ap
(
  id serial NOT NULL,
  ssid text NOT NULL,
  bssid text NOT NULL,
  capabilities text,
  CONSTRAINT ap_pkey PRIMARY KEY (id )
)
CREATE TABLE location2
(
  latitude double precision NOT NULL,
  longitude double precision NOT NULL,
  power integer NOT NULL,
  ap_id integer,
  id serial NOT NULL,
  CONSTRAINT location2_pkey PRIMARY KEY (id ),
  CONSTRAINT location2_ap_id_fkey FOREIGN KEY (ap_id)
      REFERENCES ap (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
Run Code Online (Sandbox Code Playgroud)

AP:

import java.io.Serializable;
import …
Run Code Online (Sandbox Code Playgroud)

jpa spring-data-jpa

6
推荐指数
1
解决办法
5552
查看次数

如何在插入包含对象集的对象列表期间忽略唯一违规

我在 Hibernate 中使用 PostgreSQL 和 Spring 数据 JPA。我将 OneToMany 与 orphanRemoval = false 联系起来,因为我经常将许多孩子添加到关系中。

家长:

@OneToMany(mappedBy = "parent", cascade = { CascadeType.ALL }, orphanRemoval = false, fetch = FetchType.LAZY) public Set getChildren() { return children; } }

孩子:

@ManyToOne @JoinColumn(name = "parent_id") public Parent getParent() { return parent; }

要持久化或合并对象,我使用方法

Iterable< T> save(Iterable< extends T> entity)

形成 CrudRepository。我保存父母列表,其中每个父母都包含一组孩子。子表具有唯一约束。如果发生约束违规,我想忽略它并省略(不要坚持)会发生违规的子项,但我想插入每个不违反约束的子项。怎么做?

java hibernate spring-data-jpa postgresql-9.1

6
推荐指数
1
解决办法
3023
查看次数

每个外键分别自动递增

我有两个表:

 CREATE TABLE "user"
    (
      username character varying(35) NOT NULL,
      CONSTRAINT user_pk PRIMARY KEY (username)
    )
    CREATE TABLE item
    (
      id serial NOT NULL,
      username character varying(35),
      user_item_number integer,
      item_value character varying(35),
      CONSTRAINT item_pk PRIMARY KEY (id),
      CONSTRAINT item_fk FOREIGN KEY (username)
          REFERENCES "user" (username) MATCH SIMPLE
          ON UPDATE NO ACTION ON DELETE NO ACTION,
      CONSTRAINT unique_item_username UNIQUE (username, user_item_number)
    )
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我想user_item_number分别为每个自动增加username。下图显示了示例。对于每个username:(user1user2user_item_number从1开始并递增1。 在此处输入图片说明

我想,我应该插入其中得到的最大值之前使用一些触发user_item_numberusername,其插入并加一。但是我不知道如何编写触发器。

我也不知道如何考虑并发访问(并发插入多个具有相同值的行 …

database postgresql

6
推荐指数
1
解决办法
675
查看次数

如何将外部传感器连接到Android设备?

我有没有晴雨表的智能手机,我想通过USB或蓝牙连接我的智能手机使用外部气压计.我希望每个安装的应用程序都能以标准方式使用这个baromter,但我不知道是否可能.按照标准方式,我的意思是从google play下载的每个需要气压计的应用程序都可以使用我的外部晴雨表.因此,有应用程序读取测量并通过Intent分享它的解决方案并不能让我满意.

添加外部GPS更容易,因为有android.location.LocationManager类有一个方法addTestProvider所以我可以开发应用程序,创建TestProvider并通过setTestProviderLocation方法设置从USB /蓝牙读取位置.问题是SensorManager不提供API来添加模拟传感器.

可以将外部气压计连接到Android设备并与所有应用程序共享测量值.

android android-sensors

6
推荐指数
1
解决办法
1万
查看次数

8点到9.30每5分钟怎么表达?

是否可以通过单个表达式安排作业从周一到周五的 8 点到 9.30 每 5 分钟运行一次?我唯一想到的就是把它分成两部分,8-9 和 9-9.30。然后将有两个表达式: * */5 8 * * MON-FRI 和 * 5-30/5 9 * * MON-FRI。

cronexpression

5
推荐指数
0
解决办法
282
查看次数

如何使用spring表达式语言获取作业ID?

我想用spring表达式语言获得job id.我试过#{jobExecutionContext[jobId]}但它不起作用.

spring-batch

5
推荐指数
1
解决办法
5080
查看次数

Java 相当于 php pack('H*', str)

编辑

我改$checksum = md5($someString+$bkey);$checksum = md5($someString.$bkey);

我需要在 Java 中执行以下操作:

$hexString = '90aa';#sample value
$bkey = pack('H*',$hexString);
$someString='qwe';#sample value
$checksum  = md5($someString.$bkey);
echo $checksum;
Run Code Online (Sandbox Code Playgroud)

我无法在 Java 中将 hexString 转换为 bkey 以获得与 php 脚本相同的结果。除了bkey一切正常。

如果我删除bkey然后:

PHP:

$someString='qwe';#sample value
$checksum  = md5($someString);
echo $checksum;
Run Code Online (Sandbox Code Playgroud)

结果: 76d80224611fc919a5d54f0ff9fba446

爪哇:

String someString = "qwe";
        MessageDigest messageDigest = MessageDigest.getInstance("MD5");
        String checksum = new BigInteger(1, messageDigest.digest(someString
                .getBytes())).toString(16);
        System.out.println(checksum);
Run Code Online (Sandbox Code Playgroud)

结果: 76d80224611fc919a5d54f0ff9fba446

如您所见,它有效

bkey

PHP:

$hexString = '90aa';#sample value
$bkey = …
Run Code Online (Sandbox Code Playgroud)

php java string

5
推荐指数
1
解决办法
5907
查看次数

UserGroup和Group有什么区别?

我确信group和UserGroup是liferay中的同义词.现在我觉得我错了.UserGroup和Group有什么区别?

liferay

4
推荐指数
1
解决办法
799
查看次数

我无法添加新条目

我尝试向ldap添加新条目,我不知道为什么它不起作用.

我有addPeople.ldif档案:

dn: ou=People,dc=example,dc=com,dc=au
ou: people
description: All people in organisation
objectClass: organizationalUnit
Run Code Online (Sandbox Code Playgroud)

我输入以下命令:

ldapadd -x -D "cn=Manager,dc=example,dc=com,dc=au" -w secret -f ~/addPeople.ldif
Run Code Online (Sandbox Code Playgroud)

结果:

adding new entry "ou=People,dc=example,dc=com,dc=au"
ldap_add: No such object (32)
Run Code Online (Sandbox Code Playgroud)

根据quickstart openldap文档命令:

ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
Run Code Online (Sandbox Code Playgroud)

收益:

# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: namingContexts 
#

#
dn:
namingContexts: dc=example,dc=com,dc=au

# search result
search: 2
result: 0 Success

# numResponses: 2
# …
Run Code Online (Sandbox Code Playgroud)

openldap

3
推荐指数
1
解决办法
4443
查看次数

为什么代理不用于自动装配

我找不到为什么每个自动装配的bean都没有被代理自动装配的原因.我知道因为@Transactional注释不起作用,我在eclipse调试期间检查了自动装配的组件.当然,每个组件都实现了一些接口,我使用@Autowired与接口相关的注释.我只有一个aop配置:

<tx:annotation-driven transaction-manager="transactionManager" />
Run Code Online (Sandbox Code Playgroud)

我使用JPA与hibernate,spring-mvc,spring-webflow,spring-security和spring-data.扩展的接口org.springframework.data.repository.CrudRepository由代理自动装配.但我的组件不是.例如,我有类MyClass实现MyInterface:

@Service
public class MyClass implements MyInterface {
@Autowired
MyCrudReposiotry reposiotry;
....
}
Run Code Online (Sandbox Code Playgroud)

如果我在某处自动装配MyInterface:

@Autowired
MyInterface mi;
Run Code Online (Sandbox Code Playgroud)

然后mi只是MyClass对象的引用,存储库是对代理的引用org.springframework.aop.framework.JdkDynamicAopProxy.非常有趣的是,在测试中mi是对代理的引用.我的测试上下文不包含web-flow和mvc配置.

也许有一些间接的aop配置我应该检查.什么可以通过代理关闭自动装配?

spring proxy-classes

2
推荐指数
2
解决办法
3401
查看次数