java hibernate错误“;无法执行语句";在Session.save()中 /** *bankbranchcontactdetailsBean的说明 * *@作者Vishal Jain */ 包com.beans; 导入javax.persistence.Entity; 导入javax.persistence.Table; 导入javax.persistence.TableGenerator; 导入javax.persistence.Id; 导入javax.persistence.Column; 导入javax.persistence.Temporal; 导入javax.persistence.UniqueConstraint; 导入javax.persistence.GeneratedValue; 导入javax.persistence.GenerationType; 导入java.util.Date; @实体(名称=“bankbranchcontactdetails”) @表(name=“bankbranchcontactdetails”,schema=“stserptest”,uniqueConstraints={@UniqueConstraint(columnNames=“BankBranchContactId”)}) @TableGenerator(name=“bankbranchcontactdetailsgen”,table=“bankbranchcontactdetails”,pkColumnName=“BankBranchContactId”) 公共类bankbranchcontactdetailsBean扩展SuperBeanClass实现 超级豆面{ @身份证 @GeneratedValue(策略=GenerationType.AUTO) @列(columnDefinition=“mysql->int(10)unsigned”,name=“BankBranchContactId”,精度=10,刻度=0,可空=false,唯一=true) 私有整数_BankBranchContactId; @列(columnDefinition=“mysql->int(10)unsigned”,name=“BankBranchId”,精度=10,刻度=0,可空=false) 私有整数_bankbranchhid; @列(columnDefinition=“mysql->enum('Phone'、'Mobile'、'Fax'、'Telex'),name=“ContactType”,length=6,nullable=false) 私有字符串_ContactType; @列(columnDefinition=“mysql->varchar(20)”,name=“Contact”,长度=20,空值=false) 私人字符串\u联系人; 公共银行分行联系人详细信息Bean(){ _BankBranchId=0; _ContactType=“”; _联系人=”; } public bankbranchcontactdetailsBean(整型), 字符串(触点类型,字符串(触点){ _BankBranchId=uu BankBranchId; _ContactType=\uuuuContactType; _触点=_触点; } 公共整数getBankBranchId(){ 返回(BankBranchId);; } 公共字符串getContactType(){ 返回触点类型; } 公共字符串getContact(){ 返回(u)联系人;; } public void setbankbranchhid(整型NewValue){ _BankBranchId=NewValue; } public void setContactType(字符串NewValue){ _ContactType=NewValue; } public void setContact(字符串NewValue){ _联系人=新值; } } /** *hibernate.cfg.xml的说明 */ org.hibernate.dialogue.mysqldialogue com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/mysql?zeroDateTimeBehavior=convertToNull 根 密码 v32 更新 /** *ManagerClass的说明 * *@作者Vishal Jain */ 包com.beans; 导入java.util.ArrayList; 导入javax.swing.JOptionPane; 导入org.hibernate.hibernateeexception; 导入org.hibernate.Session; 导入org.hibernate.SessionFactory; 导入org.hibernate.cfg.Configuration; 导入org.hibernate.service.ServiceRegistry; 导入org.hibernate.service.ServiceRegistryBuilder; 公共类管理器类{ 私有静态SessionFactory=null; 私有静态ManagerClass _ManagerClass=null; 公共静态SessionFactory createSessionFactory(){ 会话工厂会话工厂; 配置=新配置(); configure.configure(); ServiceRegistry ServiceRegistry=新ServiceRegistryBuilder() .applySettings(configuration.getProperties()) .buildServiceRegistry(); sessionFactory=configuration.buildSessionFactory(serviceRegistry); 返回工厂; } 公共静态SessionFactory getSessionFactory(){ 返回工厂; } public static ManagerClass getInstance()抛出ExceptionInInitializeError{ 试一试{ 如果(工厂==null){ factory=createSessionFactory(); } 如果(_ManagerClass==null){ _ManagerClass=新的ManagerClass(); } }捕获(可丢弃的ex){ JOptionPane.showMessageDialog( 无效的 “未能创建sessionFactory对象…\n” +例如,getMessage(),“错误…”,0); 抛出新异常InInitializeRerror(ex); }最后{ 返回管理器类; } } public ArrayList SaveBeansList(会话会话、字符串entityName、, ArrayList
请尝试为您的实体实现可序列化接口(尽管Hibernate没有强制实施)。还请将_BankBranchContactId重命名为id。并启用Hibernate_sql日志记录以查看sql查询被激发。同时检查架构“stserptest”是否正确创建。请尝试为您的实体实现可序列化接口(虽然这不是由Hibernate强加的)。还要将_BankBranchContactId重命名为id。并启用Hibernate_sql日志记录以查看sql查询被激发。还要检查架构“stserptest”是否正确创建。感谢Manjunath,该建议很有用。现在我没有收到指定的错误。即使使用更新新表,仍然如此(bankbranchcontactdetails)未创建。你也能帮我吗????Vishal如果你想创建新表,那么我觉得你需要设置create。请写下你为“无法执行语句”所做的解决方案/修复下面的错误是对您的问题的回答,这样这个问题就不会显示为未回答,同时也会使一些读者受益(包括我:-)要了解配置实体时需要注意的事项。Thanksmanjunah create将仅用于创建表。第二个条目会被忽略。而更新会创建并更新表。此外,不幸的是,我还不熟悉堆栈溢出,请指导我如何获得标记为已回答的问题。java hibernate错误“;无法执行语句";在Session.save()中 /** *bankbranchcontactdetailsBean的说明 * *@作者Vishal Jain */ 包com.beans; 导入javax.persistence.Entity; 导入javax.persistence.Table; 导入javax.persistence.TableGenerator; 导入javax.persistence.Id; 导入javax.persistence.Column; 导入javax.persistence.Temporal; 导入javax.persistence.UniqueConstraint; 导入javax.persistence.GeneratedValue; 导入javax.persistence.GenerationType; 导入java.util.Date; @实体(名称=“bankbranchcontactdetails”) @表(name=“bankbranchcontactdetails”,schema=“stserptest”,uniqueConstraints={@UniqueConstraint(columnNames=“BankBranchContactId”)}) @TableGenerator(name=“bankbranchcontactdetailsgen”,table=“bankbranchcontactdetails”,pkColumnName=“BankBranchContactId”) 公共类bankbranchcontactdetailsBean扩展SuperBeanClass实现 超级豆面{ @身份证 @GeneratedValue(策略=GenerationType.AUTO) @列(columnDefinition=“mysql->int(10)unsigned”,name=“BankBranchContactId”,精度=10,刻度=0,可空=false,唯一=true) 私有整数_BankBranchContactId; @列(columnDefinition=“mysql->int(10)unsigned”,name=“BankBranchId”,精度=10,刻度=0,可空=false) 私有整数_bankbranchhid; @列(columnDefinition=“mysql->enum('Phone'、'Mobile'、'Fax'、'Telex'),name=“ContactType”,length=6,nullable=false) 私有字符串_ContactType; @列(columnDefinition=“mysql->varchar(20)”,name=“Contact”,长度=20,空值=false) 私人字符串\u联系人; 公共银行分行联系人详细信息Bean(){ _BankBranchId=0; _ContactType=“”; _联系人=”; } public bankbranchcontactdetailsBean(整型), 字符串(触点类型,字符串(触点){ _BankBranchId=uu BankBranchId; _ContactType=\uuuuContactType; _触点=_触点; } 公共整数getBankBranchId(){ 返回(BankBranchId);; } 公共字符串getContactType(){ 返回触点类型; } 公共字符串getContact(){ 返回(u)联系人;; } public void setbankbranchhid(整型NewValue){ _BankBranchId=NewValue; } public void setContactType(字符串NewValue){ _ContactType=NewValue; } public void setContact(字符串NewValue){ _联系人=新值; } } /** *hibernate.cfg.xml的说明 */ org.hibernate.dialogue.mysqldialogue com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/mysql?zeroDateTimeBehavior=convertToNull 根 密码 v32 更新 /** *ManagerClass的说明 * *@作者Vishal Jain */ 包com.beans; 导入java.util.ArrayList; 导入javax.swing.JOptionPane; 导入org.hibernate.hibernateeexception; 导入org.hibernate.Session; 导入org.hibernate.SessionFactory; 导入org.hibernate.cfg.Configuration; 导入org.hibernate.service.ServiceRegistry; 导入org.hibernate.service.ServiceRegistryBuilder; 公共类管理器类{ 私有静态SessionFactory=null; 私有静态ManagerClass _ManagerClass=null; 公共静态SessionFactory createSessionFactory(){ 会话工厂会话工厂; 配置=新配置(); configure.configure(); ServiceRegistry ServiceRegistry=新ServiceRegistryBuilder() .applySettings(configuration.getProperties()) .buildServiceRegistry(); sessionFactory=configuration.buildSessionFactory(serviceRegistry); 返回工厂; } 公共静态SessionFactory getSessionFactory(){ 返回工厂; } public static ManagerClass getInstance()抛出ExceptionInInitializeError{ 试一试{ 如果(工厂==null){ factory=createSessionFactory(); } 如果(_ManagerClass==null){ _ManagerClass=新的ManagerClass(); } }捕获(可丢弃的ex){ JOptionPane.showMessageDialog( 无效的 “未能创建sessionFactory对象…\n” +例如,getMessage(),“错误…”,0); 抛出新异常InInitializeRerror(ex); }最后{ 返回管理器类; } } public ArrayList SaveBeansList(会话会话、字符串entityName、, ArrayList,java,hibernate,Java,Hibernate,请尝试为您的实体实现可序列化接口(尽管Hibernate没有强制实施)。还请将_BankBranchContactId重命名为id。并启用Hibernate_sql日志记录以查看sql查询被激发。同时检查架构“stserptest”是否正确创建。请尝试为您的实体实现可序列化接口(虽然这不是由Hibernate强加的)。还要将_BankBranchContactId重命名为id。并启用Hibernate_sql日志记录以查看sql查询被激发。还要检查架构“stserptest”是否正确创建。感谢M
/**
* Description of bankbranchcontactdetailsBean
*
* @author Vishal Jain
*/
package com.beans;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import javax.persistence.Id;
import javax.persistence.Column;
import javax.persistence.Temporal;
import javax.persistence.UniqueConstraint;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import java.util.Date;
@Entity(name = "bankbranchcontactdetails")
@Table(name = "bankbranchcontactdetails", schema = "stserptest", uniqueConstraints = { @UniqueConstraint(columnNames = "BankBranchContactId") })
@TableGenerator(name = "bankbranchcontactdetailsgen", table = "bankbranchcontactdetails", pkColumnName = "BankBranchContactId")
public class bankbranchcontactdetailsBean extends SuperBeanClass implements
SuperBeanInterface {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(columnDefinition = "mysql->int(10) unsigned", name = "BankBranchContactId", precision = 10, scale = 0, nullable = false, unique = true)
private Integer _BankBranchContactId;
@Column(columnDefinition = "mysql->int(10) unsigned", name = "BankBranchId", precision = 10, scale = 0, nullable = false)
private Integer _BankBranchId;
@Column(columnDefinition = "mysql->enum('Phone','Mobile','Fax','Telex')", name = "ContactType", length = 6, nullable = false)
private String _ContactType;
@Column(columnDefinition = "mysql->varchar(20)", name = "Contact", length = 20, nullable = false)
private String _Contact;
public bankbranchcontactdetailsBean() {
_BankBranchId = 0;
_ContactType = "";
_Contact = "";
}
public bankbranchcontactdetailsBean(Integer __BankBranchId,
String __ContactType, String __Contact) {
_BankBranchId = __BankBranchId;
_ContactType = __ContactType;
_Contact = __Contact;
}
public Integer getBankBranchId() {
return _BankBranchId;
}
public String getContactType() {
return _ContactType;
}
public String getContact() {
return _Contact;
}
public void setBankBranchId(Integer NewValue) {
_BankBranchId = NewValue;
}
public void setContactType(String NewValue) {
_ContactType = NewValue;
}
public void setContact(String NewValue) {
_Contact = NewValue;
}
}
/**
* Description of hibernate.cfg.xml
*/
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mysql?zeroDateTimeBehavior=convertToNull</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">password</property>
<property name="hibernate.default_schema">v32</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping class="com.stserp.beans.bankbranchcontactdetailsBean" />
</session-factory>
</hibernate-configuration>
/**
* Description of ManagerClass
*
* @author Vishal Jain
*/
package com.beans;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
public class ManagerClass {
private static SessionFactory factory = null;
private static ManagerClass _ManagerClass = null;
public static SessionFactory createSessionFactory() {
SessionFactory sessionFactory;
Configuration configuration = new Configuration();
configuration.configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
return sessionFactory;
}
public static SessionFactory getSessionFactory() {
return factory;
}
public static ManagerClass getInstance() throws ExceptionInInitializerError {
try {
if (factory == null) {
factory = createSessionFactory();
}
if (_ManagerClass == null) {
_ManagerClass = new ManagerClass();
}
} catch (Throwable ex) {
JOptionPane.showMessageDialog(
null,
"Failed to create sessionFactory object...\n"
+ ex.getMessage(), "Error...", 0);
throw new ExceptionInInitializerError(ex);
} finally {
return _ManagerClass;
}
}
public ArrayList<Integer> SaveBeansList(Session session, String entityName,
ArrayList<? extends SuperBeanClass> BeansList)
throws HibernateException {
ArrayList<Integer> IDs = null;
try {
IDs = new ArrayList<Integer>();
for (SuperBeanClass element : BeansList) {
IDs.add((Integer) session.save(entityName, element));
}
} catch (HibernateException e) {
throw e;
}
return IDs;
}
public ArrayList<? extends SuperBeanClass> LoadTable(Session session,
String TableName) throws HibernateException {
ArrayList<? extends SuperBeanClass> beansList = null;
try {
beansList = (ArrayList<? extends SuperBeanClass>) session
.createQuery("FROM " + TableName).list();
} catch (HibernateException e) {
throw e;
}
return beansList;
}
public ArrayList<?> LoadConditional(Session session, String _query)
throws HibernateException {
ArrayList<?> beansList = null;
try {
beansList = (ArrayList<? extends SuperBeanClass>) session
.createQuery(_query).list();
} catch (HibernateException e) {
throw e;
}
return beansList;
}
public SuperBeanInterface LoadById(Session session, Class className,
Integer ID) throws HibernateException {
SuperBeanInterface BeanInterface = null;
try {
BeanInterface = (SuperBeanInterface) session.get(className, ID);
} catch (HibernateException e) {
throw e;
}
return BeanInterface;
}
public void DeleteById(Session session, Class className, Integer ID)
throws HibernateException {
try {
session.delete(session.get(className, ID));
} catch (HibernateException e) {
throw e;
}
}
}
/**
* Description of SuperBeanClass
*
* @author Vishal Jain
*/
package com.beans;
public class SuperBeanClass {
public SuperBeanClass() {
}
}
/**
* Description of SuperBeanInterface
*
* @author Vishal Jain
*/
package com.beans;
public interface SuperBeanInterface {
}
OUTPUT
enter code here
ClassName -- FileName -- MethodName -- LineNo.
org.hibernate.exception.internal.SQLExceptionTypeDelegate -- SQLExceptionTypeDelegate.java -- convert -- 82
org.hibernate.exception.internal.StandardSQLExceptionConverter -- StandardSQLExceptionConverter.java -- convert -- 49
org.hibernate.engine.jdbc.spi.SqlExceptionHelper -- SqlExceptionHelper.java -- convert -- 125
org.hibernate.engine.jdbc.spi.SqlExceptionHelper -- SqlExceptionHelper.java -- convert -- 110
org.hibernate.engine.jdbc.internal.ResultSetReturnImpl -- ResultSetReturnImpl.java -- executeUpdate -- 136
org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate -- IdentityGenerator.java -- executeAndExtract -- 96
org.hibernate.id.insert.AbstractReturningDelegate -- AbstractReturningDelegate.java -- performInsert -- 58
org.hibernate.persister.entity.AbstractEntityPersister -- AbstractEntityPersister.java -- insert -- 2975
org.hibernate.persister.entity.AbstractEntityPersister -- AbstractEntityPersister.java -- insert -- 3487
org.hibernate.action.internal.EntityIdentityInsertAction -- EntityIdentityInsertAction.java -- execute -- 81
org.hibernate.engine.spi.ActionQueue -- ActionQueue.java -- execute -- 377
org.hibernate.engine.spi.ActionQueue -- ActionQueue.java -- addResolvedEntityInsertAction -- 214
org.hibernate.engine.spi.ActionQueue -- ActionQueue.java -- addInsertAction -- 194
org.hibernate.engine.spi.ActionQueue -- ActionQueue.java -- addAction -- 178
org.hibernate.event.internal.AbstractSaveEventListener -- AbstractSaveEventListener.java -- addInsertAction -- 321
org.hibernate.event.internal.AbstractSaveEventListener -- AbstractSaveEventListener.java -- performSaveOrReplicate -- 286
org.hibernate.event.internal.AbstractSaveEventListener -- AbstractSaveEventListener.java -- performSave -- 192
org.hibernate.event.internal.AbstractSaveEventListener -- AbstractSaveEventListener.java -- saveWithGeneratedId -- 125
org.hibernate.event.internal.DefaultSaveOrUpdateEventListener -- DefaultSaveOrUpdateEventListener.java -- saveWithGeneratedOrRequestedId -- 206
org.hibernate.event.internal.DefaultSaveEventListener -- DefaultSaveEventListener.java -- saveWithGeneratedOrRequestedId -- 55
org.hibernate.event.internal.DefaultSaveOrUpdateEventListener -- DefaultSaveOrUpdateEventListener.java -- entityIsTransient -- 191
org.hibernate.event.internal.DefaultSaveEventListener -- DefaultSaveEventListener.java -- performSaveOrUpdate -- 49
org.hibernate.event.internal.DefaultSaveOrUpdateEventListener -- DefaultSaveOrUpdateEventListener.java -- onSaveOrUpdate -- 90
org.hibernate.internal.SessionImpl -- SessionImpl.java -- fireSave -- 764
org.hibernate.internal.SessionImpl -- SessionImpl.java -- save -- 756
com.stserp.beans.ManagerClass -- ManagerClass.java -- SaveBeansList -- 60
com.stserp.Program -- Program.java -- main -- 73
could not execute statement