相关疑难解决方法(0)

Hibernate Annotations - 哪个更好,字段或属性访问?

这个问题与Hibernate Annotation Placement Question有些相关.

但我想知道哪个更好?通过属性访问或通过字段访问?各有哪些优缺点?

java orm annotations hibernate jpa

129
推荐指数
12
解决办法
11万
查看次数

javax.persistence字段,getter或setter上的注释?

我目前正在学习Hibernate和Java Persistence API.

我有一个@Entity类,需要将注释应用于各个字段.我已经在下面的代码中包含了他们可以去的所有三个地方.

我应该将它们应用于场地本身,吸气剂还是定位器?这三个选项之间的语义差异(如果有的话)是什么.

import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;

@Entity
@Table(name = "song")
public class Song { 
    // Annotations should only be applied to one of the below

    @Id 
    @Column(name="id", unique=true, nullable=false)
    private int    id;

    @Id
    @Column(name="id", unique=true, nullable=false)
    public int getId() {
        return id;
    }

    @Id
    @Column(name="id", unique=true, nullable=false)
    public void setId(int id) {
        this.id = id;
    }
}
Run Code Online (Sandbox Code Playgroud)

java hibernate-mapping

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

只是获取id列值而不是在hibernate对象中使用join一对多关系

我正在使用hibernate 4+.

我有两个样本表.

表A.

public class A {
  @Id
  private int id;

  @OneToMany(fetch=LAZY)
  private List<B> list;

  // skip getter&setter
}
Run Code Online (Sandbox Code Playgroud)

表B.

public class B {
  @Id
  private int id;

  @ManyToOne(fetch=LAZY)
  @JoinColumn(name="b_id")
  private A a;

  // skip getter&setter
}
Run Code Online (Sandbox Code Playgroud)

表A(1) - (n)表B关系

我可以在对象B中获取A的id而不使用join吗?

比如int aid = b.getA().getId(); // b是B的实例;

虽然我在声明类B时可以使用int值而不是A.但是另一个服务层使用A和join.

我可以获得id(fk)值吗?

请帮忙.

java hibernate join

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

当只需要实体 ID 时,如何避免初始化 Hibernate 代理

对于@ManyToOneJPA 实体中的关系,我只对实际 id 引用感兴趣,而不是获取与该关系关联的整个模型。

以这些 Kotlin JPA 实体为例:

@Entity
class Continent(
        @Id
        var id: String,
        var code: String,
        var name: String
) : Comparable<Continent> {

    companion object {
        private val COMPARATOR = compareBy<Continent> { it.id }
    }

    override fun compareTo(other: Continent): Int {
        return COMPARATOR.compare(this, other)
    }
}

@Entity
class Country(
        @Id
        var id: String,
        var alpha2Code: String,
        var alpha3Code: String,
        var name: String,
        @ManyToOne(fetch = FetchType.LAZY)
        @JoinColumn(name = "continent_id")
        var continent: Continent

) : Comparable<Country> {

    companion …
Run Code Online (Sandbox Code Playgroud)

proxy hibernate jpa kotlin

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

Hibernate/JPA - 如何在不触发延迟加载的情况下获取 @ManyToOne 字段的 id

例如,有一个实体“用户”,其@ManyToOne(fetch=Lazy)字段“团队”。我已经使用过entityManager.find(User.class, userId)获取用户。此时,如果我调用user.getTeam()查询将发送到数据库以获取团队对象。有没有办法无需额外查询即可获取团队 ID?

hibernate jpa

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

标签 统计

hibernate ×4

java ×3

jpa ×3

annotations ×1

hibernate-mapping ×1

join ×1

kotlin ×1

orm ×1

proxy ×1