【问题标题】:@SqlResultSetMapping with @Embedded@SqlResultSetMapping 与 @Embedded
【发布时间】:2015-07-17 14:09:48
【问题描述】:

我在 Hibernate 中映射嵌入字段时遇到问题。 这是代码:

@Entity
@Table(name="CAR")
@SqlResultSetMapping(name = "carMapping",
entities = {
    @EntityResult(entityClass = Car.class,
fields = {
    @FieldResult(name = "id", column = "ID"),
    @FieldResult(name = "producer", column = "PRODUCER"),
    @FieldResult(name = "model", column = "MODEL"),

    @FieldResult(name="bookNumber",column="SERVICE_BOOK_NUMBER"),
    @FieldResult(name="owner", column="SERVICE_BOOK_OWNER")
}
)})
public class Car {

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

@Column(name="PRODUCER")
private String producer;

@Column(name="MODEL")
private String model;

@Embedded
@AttributeOverrides({
    @AttributeOverride(name="bookNumber", column=@Column(name="SERVICE_BOOK_NUMBER")),
    @AttributeOverride(name="owner", column=@Column(name="SERVICE_BOOK_OWNER")),
})
private ServiceBook serviceBook;

当我尝试检索汽车时,出现以下错误:

javax.ejb.EJBTransactionRolledbackException: The transaction has been marked rollback only 
because the bean encountered a non-application exception :javax.persistence.PersistenceException : 
org.hibernate.exception.SQLGrammarException: Column 'SERVICE4_0_0_' not found

我的问题是:可以同时使用@SqlResultSetMapping@Embedded 吗?

【问题讨论】:

    标签: java hibernate jpa


    【解决方案1】:

    创建一个新的@EntityResult 到 ServiceBook,就像你对 Car.class 所做的那样。我通常这样做是为了将列绑定到属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 2017-01-07
      • 2020-06-26
      • 1970-01-01
      • 2014-10-18
      • 1970-01-01
      相关资源
      最近更新 更多