如何保存hibernate实体并忽略(不正确)瞬态模式。
例如:
@Entity
@Table(name="`REQUEST`")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="`receiver`",discriminatorType=DiscriminatorType.STRING,length=20)
public abstract class Request implements UUIDAble{
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
@Transient
@NotNull
@Pattern(regexp="^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$")
private String vaucher;
@Enumerated(EnumType.STRING)
@Column(name="name",nullable=false)
private RequestName name;
public RequestName getName() {
return name;
}
public void setName(RequestName name) {
this.name = name;
}
public String getVaucher() {
return vaucher;
}
public void setVaucher(String vaucher) {
this.vaucher = vaucher;
}
}
我想保存它:
Request request = new Request();
request.setVaucher("123");
request.setName(RequestName.SYSTEM);
弹簧产生错误:
javax.validation.ConstraintViolationException: validation failed for classes [ru.icb.cpaclick.domain.OperatorCheckRequest] during persist time for groups [javax.validation.groups.Default, ]
at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.validate(BeanValidationEventListener.java:132)
at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.onPreInsert(BeanValidationEventListener.java:71)
at org.hibernate.action.EntityIdentityInsertAction.preInsert(EntityIdentityInsertAction.java:159)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:65)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:268)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:705)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:693)
参见http://docs.jboss.org/hibernate/validator/4.2/reference/en-
US/html_single/#validator-checkconstraints-
orm
。默认情况下,Hibernate(ORM)检查默认验证组的每个约束。因此,您可以将此特定约束放入另一个组中。
有关验证组的说明,请参见http://docs.jboss.org/hibernate/validator/4.2/reference/zh-
CN/html_single/#validator-usingvalidator-
validationgroups
。
问题内容: 如何保存休眠实体并忽略(不正确)瞬态模式。 例如: 我想保存它: 弹簧产生错误: 问题答案: 参见http://docs.jboss.org/hibernate/validator/4.2/reference/en- US/html_single/#validator-checkconstraints- orm 。默认情况下,Hibernate(ORM)检查默认验证组的每个约束。因此,
我有以下错误, 对象引用未保存的瞬态实例-在刷新之前保存瞬态实例:Nominee;嵌套异常是java.lang.IllegalStateException:org.hibernate.transientObjectException:对象引用未保存的瞬态实例-在刷新前保存瞬态实例:Nominee对象引用未保存的瞬态实例-在刷新前保存瞬态实例 所以在这里,当我获取employee对象时,我想要将指定
是否有可能不在HiberNate中的实体层次结构中间为类创建表? 我想指出某些实体是某种类型的子集,以便返回所有这些实体的集合,但我不会在此中间类型中放置任何额外的属性。因此,保留带有id字段的额外表只是为了连接表,这听起来并不好。 更好的解决方案是实现一些公共接口< code>CommonInterface,但是这样我就失去了返回< code>List的可能性
我尝试读取ExcelFiles并将数据保存在postgres数据库中。在某些文件中,我会得到以下错误消息: null 在大多数已爬网的数据中,什么都没有发生。当我尝试保存semster对象时会出现错误。Excel文件的结构如下:标题、模块号、语言、学期号
错误是:by:javax.el.elexception://jsf/submit.xhtml@20,76 listener=“#{banklocationmb.savelocation}”对象引用了一个未保存的瞬态实例-在刷新之前保存瞬态实例 尝试添加级联持久化,我收到以下错误 org.springframework.orm.jpa.jpasystemexception:org.hibernate
我有一个定义如下的实体。Mine是一个Spring数据jpa应用程序。 我使用的是spring boot版本1.5.4.RELEASE 当我用createDttm从控制器调用服务时 它正在保存/更新为2019-06-11 11:08:03.520000。它正在丢弃本地日期时间的最后3位数字。任何指针都可以修复相同的问题。 更新:默认Jsr310JpaConverters.class没有转换器来支持