相关疑难解决方法(0)

自动为@Embeddable类的列名添加前缀

我正在开发一个项目,我通过添加Hibernate注释来持久保存一些POJO.有一个问题我运行到是像这样的代码失败,因为Hibernate的尝试中的子字段映射Time_T到同一列(即startTime.secstopTime.sec都试图映射到科拉姆sec,导致错误).

@Entity
public class ExampleClass
{
  @Id
  long eventId;

  Time_T startTime;
  Time_T stopTime;
}

@Embeddable
public class Time_T
{
  int sec;
  int nsec;
}
Run Code Online (Sandbox Code Playgroud)

由于会有很多出现这样在整个系统中,这将是很好,如果有自动追加的前缀列的名称(例如使列是一个选项startTime_sec,startTime_nsec,stopTime_sec,stopTime_nsec),而不必基于每个应用覆盖现场基础.Hibernate是否具备此功能,还是有其他合理的解决方法?

java orm hibernate

30
推荐指数
3
解决办法
9755
查看次数

带有前缀的JPA Multiple Embedded字段?

使用JPA annoations,我想重用相同的嵌入对象,如下所示:

@Entity
public class User {
    @Embedded
    public Address homeAddress;

    @Embedded
    public Address workAddress;
}

@Embeddable
public class Address {
    public String code;
    public String city;
    ...
} 
Run Code Online (Sandbox Code Playgroud)

我可以使用@AttributeOverrides,@ AttributeOverride和@Column指定SQL列名,但它是verbos.是否可以仅为homeAddress和workAddress指定要添加到每列的前缀?

谢谢,

泽维尔

java annotations jpa

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

如何在同一实体中使用多个@Embedded?

我在 Java Web 应用程序中有一个可嵌入的实体,如下所示:

@Embeddable
@Getter
@Setter
public class Address {
   private String street;
   private String alley;
   private int postCode;
}
Run Code Online (Sandbox Code Playgroud)

我在另一个实体中使用了一个嵌入字段,如下所示:

@Entity
@Getter
@Setter
public class User {

    @Embedded
    private Address home;

    @Embedded
    private Address work;
}
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,发生错误:

org.hibernate.MappingException:实体映射中的重复列:my.package.User 列:alley(应映射为 insert="false" update="false")。

我该如何解决?

笔记:

  • 我不能用@AttributeOverrides
  • 我正在使用休眠 5.2.10。

更新: 我使用的配置applicationContext.xml如下:

<bean id="mainSessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="packagesToScan"> 
        <list> 
            <value>my.package</value> 
        </list> 
    </property> 

    <property name="hibernateProperties"> 
        <props> 
            <prop key="hibernate.dialect">org.hibernate.spatial.dialect.postgis.PostgisDialect</prop> 
            <prop key="hibernate.hbm2ddl.auto">update</prop> 
            <prop key="hibernate.connection.characterEncoding">UTF-8</prop> 
            <prop key="hibernate.connection.charSet">UTF-8</prop> 
            <prop key="hibernate.default_schema">public</prop> …
Run Code Online (Sandbox Code Playgroud)

java hibernate

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

标签 统计

java ×3

hibernate ×2

annotations ×1

jpa ×1

orm ×1