草庐IT

PostgreSql

全部标签

java - 使用 PostgreSQL,为什么 Hibernate/JPA 不创建级联约束?

我有一个实体Bar:@OneToMany(cascade=CascadeType.ALL,mappedBy="bar")privateSetfooSet;还有一个实体Foo:@ManyToOne(optional=false)@JoinColumn(name="bar_id")privateBarbar;Hibernate在foo.bar->bar.id上创建外键约束,但它没有指定ONDELETECASCADE。为什么不?有什么方法可以实现吗?或者,我可以在数据库中手动添加ONDELETECASCADE(并禁用DDL生成),这是一个好的做法吗?而且,我是否必须修改我的代码以某种方式让H

java - 将 PostgreSQL bytea-stored serialized-java-UUID 转换为 postgresql-UUID

我们的一个软件项目使用了一个PostgreSQL表,其中包含bytea类型的“guid”列。这与hibernate3.3.2.GA和PostgreSQL8.4一起使用,它使用javaobjectserialization序列化javaUUID类型.结果是类似于以下escape格式bytea文字的值:'\254\355\000\005sr\000\016java.util.UUID\274\231\003\367\230m\205/\002\000\002‌​J\000\014leastSigBitsJ\000\013mostSigBitsxp\273\222)\360*r\322\26

java - @BatchSize 是聪明还是愚蠢的使用?

首先我将解释我是如何理解和使用@BatchSize的:@BatchSize是为了批量加载对象关系,减少对数据库的SQL请求。这对于LAZY@OneToMany关系特别有用。然而,它甚至对LAZY@OneToOne关系和@ManyToOne很有用:如果您从数据库加载实体列表并要求加载一个惰性@*ToOne实体,即使我只是使用加载列表第一个实体关系的测试,它也会按批处理加载实体。请注意,如果有些人想要测试:这仅在实体尚未加载时显示:例如,如果您有一个带有管理器的用户列表并列出所有用户,当您访问管理器时,不会触发任何请求因为它已经加载了。我在该方法中看到的唯一缺点是,如果您从数据库中加载项目

为什么说PostgreSQL是面向对象的数据库?

PostgreSQL官方宣称它是世界上最先进的开源对象-关系型数据库管理系统(ORDBMS)。相信大家对于关系型数据库并不陌生,它基于关系模型(由行和列组成的二维表),定义了完整性约束并且使用SQL作为操作语言。不过今天我们的主题不是关系模型,而是PostgreSQL提供的面向对象特性。面向对象编程(OOP)的三大特性包括数据封装、继承和多态,那么PostgreSQL作为对象-关系型数据库,有哪些面向对象的特性体现呢?封装OOP将同类对象(Instance)封装成类(Class),并且提供方法保护数据的访问。例如以下Java示例:publicclassMain{publicstaticvoid

java - JPA 2 @SequenceGenerator @GeneratedValue 产生唯一约束冲突

问题概述在看似随机的时间,我们得到一个异常“postgresql重复键违反唯一约束”。我确实认为我知道我们的问题是什么,但我不想在没有可重现的测试用例的情况下更改代码。但是由于我们无法在生产环境中随机复制它,所以我向SO寻求帮助。在这个项目中我们有多个postgres数据库,并且为每个数据库中的每个表配置了一个主键序列。这些序列是这样创建的:createsequencePERSONS_SEQ;createsequenceVISITS_SEQ;etc...我们使用这些序列为这样的实体生成主键:@Entity@Table(name="visits")publicclassVisit{@Id

java - Hibernate + PostgreSQL + 网络地址类型(inet、cdir)

我已经使用Hibernate4.2.7和PostgreSQL9.3.1开始我的示例项目,一切进展顺利。目前我想使用INETPostgreSQLtype但我无法用Hibernate映射它。我收到此hibernate错误:无法确定类型:inet,表:DEVICE_IP_ADDRESS,列...我使用org.hibernate.dialect.PostgreSQLDialect和hbm.xml配置文件。我的hibernate映射文件:我问过谷歌,但找不到任何可用的解决方案。你能帮帮我吗?谢谢!编辑:如果我想使用“额外的”postgresql类型和PostGIS,您认为我需要使用什么样的ORM

java - 如何为 Spring Boot JPA Timestamp 指定 UTC 时区

环境SpringBoot入门数据JPA1.4.2Eclipselink2.5.0PostgreSQL9.4.1211.jre7问题我正在构建一个与不同服务共享Postgresql数据库的SpringBoot微服务。数据库在外部初始化(不受我们控制),其他服务使用的日期时间列类型是没有时区的时间戳。因此,由于我希望数据库中的所有日期都具有相同的类型,因此我的JPA实体日期需要具有该类型。我将它们映射到我的JPA实体对象的方式如下:@Column(name="some_date",nullable=false)privateTimestampsomeDate;问题是当我按如下方式创建时间戳

java - 在 postgres jdbc 驱动程序中记录准备好的 sql 语句

我想在我的java应用程序中记录所有准备好的sql语句。我正在使用标准的postgresjdbc驱动程序org.postgresql.Driver。该驱动程序有一个名为“loglevel",可以设置为1(INFO)或2(DEBUG)。关键是如果参数设置为1,它几乎不记录任何内容,如果设置为2,它的跟踪太像了...20:59:05.608(2)FE=>Bind(stmt=null,portal=null,$1=,$2=)20:59:05.609(2)FE=>Describe(portal=null)20:59:05.609(2)FE=>Execute(portal=null,limit=

java - 如何使用java在Postgis数据库中存储几何点

我正在尝试将几何对象存储到我的postgist数据库中,该数据库有一个包含几何列的表。我从另一个带有几何列的表中获取了几何值,然后打印了之前获取的值,没问题。为了存储几何值,我使用下一个函数:staticvoidinsertaGeometria(Geometrygeom,intidInstalacion)throwsClassNotFoundException,SQLException{Connectioncongeom=conectarPGA();Stringgeomsql="INSERTINTOgeorrepositorio.geometria(id,point)VALUES(?,

java - 在 CircleCi 中从 Spring Boot 访问 PostgreSQL 9.6

我有一个SpringBoot应用程序,目前在Heroku的CI中构建和运行测试,我正试图让它在CircleCI中也能工作。我的配置文件如下所示:version:2jobs:build:docker:-image:circleci/jdk8:0.1.1-image:postgres:9.6working_directory:~/repoenvironment:#CustomizetheJVMmaximumheaplimitJVM_OPTS:-Xmx3200mTERM:dumbsteps:-checkout-run:chmod+xgradlew#Downloadandcachedepend