相关疑难解决方法(0)

如何使用Hibernate映射复合键?

在这段代码中,如何为复合键生成Java类(如何在hibernate中复合键):

create table Time (
     levelStation int(15) not null,
     src varchar(100) not null,
     dst varchar(100) not null,
     distance int(15) not null,
     price int(15) not null,
     confPathID int(15) not null,
     constraint ConfPath_fk foreign key(confPathID) references ConfPath(confPathID),
     primary key (levelStation, confPathID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

java orm hibernate hql composite-key

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

Hibernate表类需要是Serializable吗?

我继承了一个使用Hibernate 3.0连接到SQL Server数据库的Websphere Portal项目.

这个项目中大约有130个Hibernate表类.它们都实现了Serializable.它们都没有声明serialVersionUID字段,因此Eclipse IDE会显示所有这些类的警告.

这些类是否真的需要实现Serializable?
如果是这样,是否有任何工具可以同时将生成的serialVersionUID字段添加到大量类中(只是为了使警告消失)?

java orm hibernate serializable

48
推荐指数
3
解决办法
4万
查看次数

休眠复合键

是否有必要将composite-id映射到类?

可以这样吗?

<composite-id>
  <key-property=..../>
  <key-property=..../>
</composite-id>
Run Code Online (Sandbox Code Playgroud)

或应该是

<composite-id class=....>
  <key-property=..../>
  <key-property=..../>
</composite-id>
Run Code Online (Sandbox Code Playgroud)

如果有必要,如果我们有复合键那么该类应该实现equals()override()方法?

java hibernate composite-key

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

为什么在 JPA 2/Hibernate 中使用共享主键时实体需要可序列化?

所以我有以下情况:

@Entity
class Image {
  @Id
  @GeneratedValue
  private Long id;

  ....
}

@Entity
class ImageData implements Serializable {
  @Id
  @OneToOne
  private Image image;

  ....
}
Run Code Online (Sandbox Code Playgroud)

这一切都工作正常,但为什么 ImageData 需要可序列化?如果不是,我会收到异常,它需要可序列化:

 org.hibernate.MappingException: composite-id class must implement Serializable:...
Run Code Online (Sandbox Code Playgroud)

我知道标识符需要可序列化,但为什么现在却相反了?

java hibernate jpa serializable jpa-2.0

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

"使用JPA EmbeddedId和Hibernate,不知道是否传递了类名...是安全的"

在教程中提供的示例代码的非常精简版本中,嵌入式复合主键:主键«JPA«Java教程,我得到:

javax.persistence.PersistenceException: [PersistenceUnit: unit] Unable to build Hibernate SessionFactory
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:877)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:805)
    at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
    at [my code that calls e.persist on a Student]
Run Code Online (Sandbox Code Playgroud)

异常是相当通用的,但Hibernate提供了一些很好的日志调试信息(我用<package>替换了实际的包名):

[DEBUG] org.hibernate.boot.internal.ClassLoaderAccessImpl: Not known whether passed class name [<package>.Student] is safe
[DEBUG] org.hibernate.boot.internal.ClassLoaderAccessImpl: No temp ClassLoader provided; using live ClassLoader for loading potentially unsafe class : <package>.Student
Run Code Online (Sandbox Code Playgroud)

这是蒸馏代码.(背景故事是我一直试图创建一个具有嵌入式id的实体无效.经过一段时间尝试调试之后,我重新开始使用这个教程代码,删除内容直到我得到相同的错误.)

@Embeddable
class StudentId {
    private int id; 

    public StudentId() {}

    public StudentId(int id) { this.id = id; }

    @Override
    public boolean …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa jpa-2.0

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

JPA 2 - 如何使用 Spring Data JPA 构建具有主键也是外键的实体?

鉴于以下表格:

Car
int id PK
int modelId FK

CarDetails
int carId PK, FK to Car.id
varchar(50) description
Run Code Online (Sandbox Code Playgroud)

我如何表明@IdofCarDetails也是 的外键Car

我试过了:

@Entity
public class Car {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    @ManyToOne
    @JoinColumn(name = "modelId", nullable = false)
    private Model model;

    //setters & getters
}

@Entity
public class CarDetails {

    @Id
    @OneToOne
    @JoinColumn(name = "carId", nullable = false)
    private Car car;

    private String description;

    //setters & getters
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误

org.hibernate.MappingException: Composite-id class must …

java hibernate jpa jpa-2.0 spring-data-jpa

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