当我使用JPA持久化一个实体时,我的Version列没有得到Update/Set。我正在使用hibernate JPA。版本是自动创建还是必须手动创建?
我有一个抽象基类
@MappedSuperclass
public abstract class AbstractDomainEO {
private Date createdDate;
@Version
private Integer version;
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
和扩展抽象类的子实体类
@SuppressWarnings("serial")
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(discriminatorType = DiscriminatorType.STRING)
@DiscriminatorValue("GENERIC")
public class ArtData extends AbstractDomainEO implements DomainObject {
更新#2....所以我决定使用另一个没有继承的简单类,只是为了让版本工作,但也没有运气。我的新类:
@Entity
@Table(name = "CAR")
public class CarEO implements Car {
private Date createdDate;
@Version
private Integer version;
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
@Temporal(TemporalType.TIMESTAMP)
public Date getCreatedDate() {
return this.createdDate;
}
@Id
@GeneratedValue
@Column(name = "CAR_ID")
private Integer id;
private String name;
public CarEO() {
super();
}
@Override
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="CAR_ID_SEQ")
public Integer getId() {
return this.id;
}
@Override
public void setId(Integer id) {
this.id = id;
}
@Override
public String getName() {
return this.name;
}
@Override
public void setName(String name) {
this.name = name;
}
}但是,我仍然为version和createDate获取null(但这是一个单独的问题)
Careo[CreatedDate=,Version=0,ID=3,Name=BMW,Comments=[]]
这是我尝试创建时的输出,为此EO对象选择delete:
[org.hibernate.cache.StandardQueryCache];使用默认值。[DEBUG]org.hibernate.sql:111-插入CAR(CAR_ID,createdDate,name,version)值(null,?,?,?)
Hibernate:插入CAR(CAR_ID,createdDate,name,version)值(null,?,?,?)
[信息]
Hibernate:选择careo0_.CAR_ID作为CAR1_1_,careo0_.CreatedDate作为createdD2_1_,careo0_.NAME作为name1_,careo0_.VERSION作为version1_
Careo[createddate=,version=0,id=3,name=BMW,comments=[]][DEBUG]org.hibernate.sql:111-从CAR中删除car_id=?和版本=?Hibernate:从CAR中删除car_id=?和版本=?
使用mappedsuperclass
是不理解的。映射超类
不可查询,并且不能在EntityManager
或Query
操作中使用。当EntityManager
对ArtData
执行DB操作时,EntityManager
将对版本
执行查询
操作。现在,这是一个问题,因为您的版本
在MappedSuperClass
中。为了避免这个问题,您必须将版本
放入实体
或POJO
类中。
实施例1
@MappedSuperclass
public abstract class AbstractDomainEO {
private Date createdDate;
}
@SuppressWarnings("serial")
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(discriminatorType = DiscriminatorType.STRING)
@DiscriminatorValue("GENERIC")
public class ArtData extends AbstractDomainEO implements DomainObject {
@Version
private Integer version;
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
}
实施例2
@Entity
public abstract class Parent {
@Version
private Integer version;
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
}
@MappedSuperclass
public class AbstractDomainEO extends Parent {
private Date createdDate;
}
@SuppressWarnings("serial")
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(discriminatorType = DiscriminatorType.STRING)
@DiscriminatorValue("GENERIC")
public class ArtData extends AbstractDomainEO implements DomainObject {
}
MappedSuperClass
的引用。
我无法按照flask教程创建数据库:https://www.youtube.com/watch?v=cywidiiuxqc&list=pl-osie80tets4ujlw5mm6ojgkjfeuxcyh&index=4 我没有找到解决这个问题的办法。请帮帮忙。 当我尝试在从项目导入数据库后运行时,我得到 SqlAlchemy.exc.OperationalError:(Sqlite3.Operat
我已经研究了很多,并使用了各种论坛中提到的许多可能的解决方案,但没有一个对我有效。我试图在CI/CD管道中运行它,尽管能够在本地运行量角器测试用例并能够启动浏览器,但在CI/CD管道构建中它失败了。下面是量角器2.5.4 E/启动器-会话未创建时出现问题的详细信息:此版本的ChromeDriver仅支持Chrome版本79 我在包中的脚本下使用以下postinstall。json 对于上面的脚本命
所以我从JDBC转移到JPA,我从我的schema.sql文件中删除了“创建表”sql语句,所以现在这个文件看起来像这样: 我的实体,成员。课堂上,是这样的: 以下是我得到的例外: 如您所见,它表示找不到表成员。如果我将“createtablemember”sql语句带回模式。sql文件,也不例外 我在Eclipse上使用Spring Boot。 谢谢!
这是我的DAO方法: 这是我的控制器: 当我试图删除到对象时,删除分离的实例时出错。 我在合并前后做了sysout,都是false,但我不知道为什么。为什么我的对象仍然是分离的? 在stackTrace之前,我有这样的消息: KWI21, 2016 10:47:45AMorg.apache.catalina.core.Standard ardWrapperValve在路径[/zapisywacz.
我在尝试将Spring与Hibernate集成时遇到了一些问题。从日志中,表和数据库似乎已经创建,但我找不到数据库文件,在检查sessionFactory时,我得到了nullpointer异常,我无法真正理解发生了什么。 以下是我的配置文件: null 编辑:这是UtenteDaoImpl类,它不做任何事情,因为它继承了BaseDao的东西。
服务产线-创建版本 概述 创建版本 服务产线-创建版本 更新时间:2018-02-01 21:17:58 概述 为了更好的管理您的服务,我们引入了版本的概念,您可以对服务的版本进行规划,通过版本的不断升级完成对服务功能的演进。不同版本的服务是不同的实例,可以同时支持外部调用。 创建版本 在服务详情页面包括服务的基本信息和版本管理列表(包含了该服务的所有版本),当该服务一个版本都没有的时候,版本列表