Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GenerationType.TABLE:数据库中的大数字_Java_Spring_Hibernate_Jpa - Fatal编程技术网

Java GenerationType.TABLE:数据库中的大数字

Java GenerationType.TABLE:数据库中的大数字,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我有一个名为Log的接口和两个子类DescriptiveLog和TraceabilityLog 所以我想为每个子类创建一个表。 我的界面如下: @Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public abstract class Log implements Serializable { @Id @GeneratedValue(strategy= GenerationType.TABLE

我有一个名为Log的接口和两个子类
DescriptiveLog
TraceabilityLog
所以我想为每个子类创建一个表。 我的界面如下:

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)

public abstract class Log implements Serializable {


    @Id
    @GeneratedValue(strategy= GenerationType.TABLE)
    private Long id;
    private Date date;
    private String actor;
    ...
}
还有我的班级:

@Entity
public class DescriptiveLog extends Log {
    private String description;
    ...
}

@Entity
public class TraceabilityLog extends Log {

    @OneToMany(mappedBy="traceabilityLog")
    private Collection<TraceabilityLogItem> traceabilityLogItems;
}
@实体
公共类DescriptiveLog扩展日志{
私有字符串描述;
...
}
@实体
公共类可跟踪性日志扩展日志{
@OneToMany(mappedBy=“traceabilityLog”)
私人收藏可追溯性登录项;
}
数据库中还有一个名为
hibernate\u sequence
的表,其中有一个属性Log 当我保存可追溯性或描述性日志时,我在数据库中看到它们的ID中有一个类似24535的值
所以我想把它们分开

我认为,如果要使用表策略为表生成ID,您需要向JPA提供程序(在您的例子中是hibernate)提供更多信息

假设您的
hibernate_序列
表中有
seq_name
来保存主列名和
seq_val
来保存下一个可用的id,那么您的映射应该是这样的:

@TableGenerator(name = "LogGen", table = "hibernate_sequence",
                pkColumnName = "seq_name", valueColumnName = "seq_val", allocationSize = 1)
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "LogGen")
private Long id;

如果您刚刚创建了日志表,那么您可以将日志表的
seq_val
设置为1。

当我在类中添加一个新错误时:检查控制是否根据配置的DatasourceOk检查持久化orm注释,但这是一个IDE错误。。您在运行时有实际问题吗?谢谢,运行时没有问题。