persistent.xml hibernate 利用sql script 自定义生成 table 表
<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" version="2.1"> <persistence-unit name="primary"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <exclude-unlisted-classes>false</exclude-unlisted-classes> <properties> <!-- <property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/> --> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> <property name="javax.persistence.schema-generation.database.action" value="drop-and-create" /> <property name="javax.persistence.schema-generation.create-source" value="script" /> <property name="javax.persistence.schema-generation.create-script-source" value="file:///e:/create.sql" /> <property name="javax.persistence.schema-generation.drop-source" value="script" /> <property name="javax.persistence.schema-generation.drop-script-source" value="file:///e:/drop.sql" /> <!-- <property name="javax.persistence.sql-load-script-source" value="META-INF/data.sql"/> --> <!-- <property name="javax.persistence.schema-generation.scripts.action" value="drop-and-create"/> <property name="javax.persistence.schema-generation.scripts.create-target" value="./create.sql"/> <property name="javax.persistence.schema-generation.scripts.drop-target" value="./drop.sql"/> --> </properties> </persistence-unit> </persistence>
注意:
sql语句创建的表要和实体bean对应。否则会出错。
create table Seat (id bigint not null auto_increment, booked bit not null, seat_id bigint, zhibin varchar(25), primary key (id)) create table seat_type (id bigint not null auto_increment, description varchar(25) not null, position varchar(255), price integer not null, quantity integer not null, primary key (id)) alter table Seat add constraint FK9pohag9bkh1suwck1bxtr7cys foreign key (seat_id) references seat_type (id)
sql文件可以放在meta-inf里面:
<property name="javax.persistence.sql-load-script-source" value="META-INF/data.sql"/>
真实路径要在:src/main/resources/META-INF/create.sql
./drop.sql是widlfly从哪里运行的当前目录。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?