小编Mat*_*Mat的帖子

将@EmbeddedId与JpaRepository一起使用

我有简单的Entitly类@EmbeddedId(IntegerString单独的类中的字段).我使用Spring Data(org.springframework.data.jpa.repository.JpaRepository)访问数据库(MySql),正常的Id查询工作正常,由Spring生成和我自己编写的.随着EmbeddedId我没有管理,以创建正确的查询.我想要做的是选择所有的id(其中某个条件发生的embeddedId的一个字段)在这里你有一些代码示例,也许有人会知道如何解决它.
实体类:

@Entity
@Table(name="table_name")
public class EntityClass {

    @EmbeddedId
    private EmbeddedIdClass id;
    private String  someField;
    //rest of implemetation
}
Run Code Online (Sandbox Code Playgroud)

EmbeddedId类:

@Embeddable
public class EmbeddedIdClass implements Serializable {

public EmbeddedIdClass(Long id, String language) {
    super();
    this.id = id;
    this.language = language;
}

public UserAdTextId() {}        

@Column(name="ad_id", nullable=false)
    private Integer id;

    @Column(name="language_code", nullable=false)
    private String  language;
    //rest of implemetation
}
Run Code Online (Sandbox Code Playgroud)

和存储库:

@Transactional(readOnly=true)
public interface MyRepository extends JpaRepository<EntityClass, EmbeddedIdClass> {
    @Query("select distinct …
Run Code Online (Sandbox Code Playgroud)

java spring jpa jpql spring-data

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

Spring,Blob下载,byte []大小增加两倍

我使用Spring 3.0与Hibernate和PostgreSQL,我有以下问题:
我将文件上传到数据库,保存其内容类型,一切正常,数据库中字段的大小是正常的.但是当我尝试下载它时,Hibernate会返回两倍大小的字节数组.下载的文件当然已损坏.大小比数据库中的大小大两倍......我的代码如下所示:
字段域类(带映射):

private byte[] cv;

@Column(name="cv")
public byte[] getCv() {
  return this.cv;
}
Run Code Online (Sandbox Code Playgroud)

加载对象的DAO函数:

public Candidate load(Integer id) {
  return (Candidate) getHibernateTemplate().get(Candidate.class, id);
}
Run Code Online (Sandbox Code Playgroud)

会话工厂配置:

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

    <property name="dataSource">
        <ref bean="dataSource"/>
    </property>

    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
            <prop key="hibernate.jdbc.batch_size">30</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>

    <property name="packagesToScan" value="foo.foo.core.domain"/>

</bean>
Run Code Online (Sandbox Code Playgroud)

SQL创建:

CREATE TABLE candidate
(
  id serial NOT NULL,
  cv bytea,
  ...
)
Run Code Online (Sandbox Code Playgroud)

如果它有任何不同,数据库将被编码为UTF-8.
我正在尝试使用org.springframework.jdbc.support.lob.DefaultLobHandler,但它没有做到这一点..任何想法?这让我疯狂..

postgresql spring hibernate blob bytearray

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

Terraform 条件配置

我对 Terraform 配置有疑问。当我第一次运行 terraform 时,我使用在 AWS 控制台中生成的 SSH 密钥。该密钥已添加到ubuntu用户(Ubuntu 16.04 AMI)。然后我运行remote-exec配置:

provisioner "remote-exec" {
  inline = [
  "sudo apt -y update && sudo apt install -y python"
  ]
  connection {
    user = "ubuntu"
    private_key = "${file("${var.aws_default_key_name}.pem")}"
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要安装 python,以便稍后可以使用 Ansible。这是我唯一需要此密钥的地方,再也不会了,因为我用我的私钥创建了自己的用户。但是,当我稍后尝试运行 terraform 时,它会搜索文件file("${var.aws_default_key_name}.pem". 现在我有一个问题如何在后续运行中跳过此配置?

我不想将 SSH 密钥存储在存储库中。

我可以创建一个空文件来“欺骗”terraform,但我不喜欢这个解决方案。

还有更好的想法吗?

amazon-web-services terraform

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

注销后Spring Security 3.1重定向

我正在阅读很多教程,但没有一个能为我工作......我使用Spring 3.1.x和Spring Security.我有一堆安全网址,许多没有安全保护.现在,当用户登录并尝试注销时,我希望他保持与以前相同的页面,所以我使用它:

<beans:bean id="logoutSuccessHandler" class="org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler">
    <beans:property name="useReferer" value="true"/>
</beans:bean>
Run Code Online (Sandbox Code Playgroud)

这很好,但是当用户从安全页面注销时,它会将其重定向到登录页面,我想重定向到主页..我怎样才能实现这一点?提前致谢!

redirect spring spring-security

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

JPQL多个左连接一个类

我有以下JPQL问题:One Class有三个字段:

public class Message{
  Integer ownerId;
  Integer fromUserId;
  Integer toUserId;
  //rest of implementation
}
Run Code Online (Sandbox Code Playgroud)

然后我想通过用户名在数据库中搜索,但我们有3个用户附加到此消息:所有者,收件人和发件人,所以我在SQL中做的是:

SELECT * FROM message m 
LEFT JOIN user o ON m.owner_id=o.id 
LEFT JOIN user fu ON m.from_user_id = fu.id
LEFT JOIN user tu ON m.to_user_id = tu.id
WHERE o.name like '%foo%' OR fu.name like '%foo%' OR tu.name like '%foo%';
Run Code Online (Sandbox Code Playgroud)

哪个可能不是最快的查询,但工作正常.然后我想把它翻译成JPQL,但这并不容易.我在'on'令牌上得到了异常,我知道如果类有关系定义到另一个类,JOIN是可能的,但是这里的关系有点复杂,因为我们有3个用户与一个Message相关.任何想法如何解决这个问题?

sql spring jpql

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