我有一个类是postgress数据库中的一个表。然后该类由其他类扩展。主类在顶部有
的注释@Inheritance(策略= InheritanceType.TABLE_PER_CLASS)
@Entity
@Table(name="policy_action")
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class PolicyAction {
@Id
@GeneratedValue(strategy=GenerationType.TABLE)
@Column(name="id")
private int id;
.....
第二课
public class myspecialPolicy extends policy {
....
}
插入数据库时会抛出以下错误
org.postgresql.util.PSQLException:ERROR:relation" hibernate_sequence"不存在
我不知道如何解决这个问题,任何帮助都会提前感谢。
答案 0 :(得分:2)
如果使用序列值,则应使用:
@Entity
@Table(name="policy_action")
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class PolicyAction {
@Id
@GeneratedValue(strategy=GenerationType.Table,generator="genName")
@TableGenerator(name="genName", table="sequenceTable", pkColumnName="seqName",valueColumnName="value",pkColumnValue="policyAction",initialValue=1,allocationSize=1)
@Column(name="id")
private int id;
如果要使用表策略,则必须创建一个包含两列的表(例如,seqName和value,以及表名的sequenceTable),并执行以下操作:
SELECT * FROM(
SELECT tt.*,
ROW_NUMBER() OVER(PARTITION BY tt.teamID,tt.position ORDER BY newid()) as rnk
FROM(
SELECT DISTINCT p.PlayerID, p.Position, t.TeamID, t.TeamAbbreviation, f.WeekNumber,
FROM dbo.Fixture f
INNER JOIN dbo.League l ON f.LeagueID = l.LeagueID
INNER JOIN dbo.Team t ON l.LeagueID = t.LeagueID
INNER JOIN dbo.Player p ON t.TeamID = p.TeamID
WHERE f.WeekNumber = 1 and l.LeagueID = 1) tt) s
WHERE (s.position = 'GK' and s.rnk = 1) OR
(s.position = 'DF' and s.rnk <= 4) OR
(s.position = 'MF' and s.rnk <= 4) OR
(s.position = 'FW' and s.rnk <= 2)
答案 1 :(得分:0)
根据您的Hibernate版本,其中一个映射可以帮助您
@Column(name = "id", columnDefinition = "serial")
@Generated(GenerationTime.INSERT)
private int id;
在最近的Hibernate版本(4.3及更高版本)中,您可以使用:
@Id
@Column(name = "id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
答案 2 :(得分:0)
解决了我的问题是在我的数据库中使用 nxt_val 列创建 hibernate_sequence 表,其中长数据类型。
的Sql
Create hibernate_sequence(nxt_val long);
然后
Insert into hibernate_sequence (nxt_val) values ('12')
NB 值 12 可以是任意数字。
现在发生的是,hibernate会选择 nxt_val 中的值来确定序列生成并指定任何内容。它适用于 TableGenerator,Sequence,Auto