相关疑难解决方法(0)

获取jpa中的列名称

我有一个查询工厂,它将列名作为属性,以便搜索该列.现在我将列的名称作为字符串传递,因此它是硬编码的.如果列的名称在实体的注释中发生更改,则"隐藏的依赖项"会中断.

在jpa中是否有一种方法可以检索列的真实名称并在编译时将其提供,因此我可以在查询中使用它?

jpa

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

注释:方法与变量

我总是确定(不知道为什么)最好在变量中添加注释,但在浏览Hibernate文档时http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity -hibspec-collection我注意到他们倾向于注释方法.所以我应该在方法之前添加注释,如下所示:

@Entity
public class Flight implements Serializable {
private long id;

@Id @GeneratedValue
public long getId() { return id; }

public void setId(long id) { this.id = id; }
}  
Run Code Online (Sandbox Code Playgroud)

或者这样做更好:

@Entity
public class Flight implements Serializable {
@Id @GeneratedValue
private long id;

public long getId() { return id; }

public void setId(long id) { this.id = id; }
}  
Run Code Online (Sandbox Code Playgroud)

或者也许没有区别?

java hibernate jpa java-ee

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

将JPA批注添加到字段与getter之间有什么区别?

我是Spring Boot和JPA的新手。我看过在字段声明上添加JPA注释的示例,例如:

@Entity
public class Fizz {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    // other fields

    public Fizz(Long id) {
        super();

        setId(id);
    }

    // setter defined here

    public Long getId() {
        return this.id;
    }
}
Run Code Online (Sandbox Code Playgroud)

...以及在吸气剂上添加相同批注的示例,如下所示:

@Entity
public class Fizz {
    private Long id;

    // other fields

    public Fizz(Long id) {
        super();

        setId(id);
    }

    // setter defined here

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Long getId() {
        return this.id;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道它们在语义上是否等效,或者是否有不同的用例,您会选择其中一种。我问是因为我实际上是在Groovy中编写我的Spring Boot / JPA应用程序,而您通常不定义getter:

@Canonical
@Entity
class Fizz { …
Run Code Online (Sandbox Code Playgroud)

java groovy jpa spring-boot

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

ManyToMany:MappingException:无法确定以下类型:java.util.List

我有一些桌子:

PROFIL:id_profil,...

体验:id_experience,id_profil#,...

COMPETENCE_LEVEL:id_competence_level,级别,...

一个PROFIL可以具有很多经验COMPETENCE_LEVEL

一个经验可以有很多COMPETENCE_LEVEL

一个COMPETENCE_LEVEL涉及到很多经验

因此,对我而言,这是EXPERIENCE和COMPETENCE_LEVEL之间的(np)ManyToMany关系。

我试过了:

PROFIL.java:

@Entity
@Table(name="profil")
public class Profil {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="id_profil")
    private Long idProfil;

    public Profil() {
        super();
    }

    public Long getIdProfil() {
        return idProfil;
    }

    public void setIdProfil(Long idProfil) {
        this.idProfil = idProfil;
    }

    @Override
    public String toString() {
        //[...]
    }

}
Run Code Online (Sandbox Code Playgroud)

EXPERIENCE.java:

@Entity
@Table(name="experience")
public class Experience {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="id_experience") …
Run Code Online (Sandbox Code Playgroud)

java many-to-many hibernate

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

标签 统计

java ×3

jpa ×3

hibernate ×2

groovy ×1

java-ee ×1

many-to-many ×1

spring-boot ×1