-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Field 'objectid' doesn't have a default value
PostPosted: Thu Jun 25, 2009 6:45 pm 
Newbie

Joined: Fri Jun 19, 2009 6:19 pm
Posts: 5
I am getting this error on MySQL 5.1.30. It seems something is wrong with the way hibernate is trying to input values. When i reverse engineer the tables using MySQL Workbench, i see that the BEACL table has objectid as foreign key with Not Null set. Two other tables having similar relationship(one-to-many) between them turn out to work properly. Any help is appreciated.

The Exception:

ERROR [http-8443-Processor24] (JDBCExceptionReporter.java:72) - Field 'objectid' doesn't have a default value
ERROR [http-8443-Processor24] (StandardWrapperValve.java:253) - Servlet.service() for servlet action threw exception
java.sql.SQLException: Field 'objectid' doesn't have a default value
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1169)
at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:693)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1404)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1318)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1303)
at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1759)
at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:2178)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:34)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:239)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:240)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:160)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:95)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:481)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:476)
at com.belfast.storage.dao.ObjectDataDAO.saveACL(ObjectDataDAO.java:77)
at com.belfast.user.data.CreateObjectAction.execute(CreateObjectAction.java:86)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:613)

The Code:
public boolean saveACL(ObjectData od, AclImpl acl) {

Session session = com.belfast.hibernate.HibernatePlugin.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
Criteria criteria = session.createCriteria(ObjectData.class).add(Expression.eq("objectId",od.getObjectId()));

List result = criteria.list();
boolean ret = false;
if(!result.isEmpty()) {
ObjectData odr = (ObjectData) result.get(0);
log.debug(odr.getName() +" & "+odr.getPath() +" & " +odr.getObjectId());
acl.setObject(odr);
odr.setAcl(acl);
session.save(acl);
tx.commit();
ret = true;
} else {
log.debug("No Object found");
}


try {
session.close();
} catch(Exception e) {
e.printStackTrace();
}

return ret;
}

public class AclImpl extends OwnerImpl implements Acl {
//
// Maintain four tables. one each for positive and negative
// ACLs. One each depending on whether the entity is a group
// or principal.
//

private long aclid;

private Map<Principal, AclEntry> allowedUsersTable =
new HashMap<Principal, AclEntry>(23);
private Map<Principal, AclEntry> allowedGroupsTable =
new HashMap<Principal, AclEntry>(23);
private Map<Principal, AclEntry> deniedUsersTable =
new HashMap<Principal, AclEntry>(23);
private Map<Principal, AclEntry> deniedGroupsTable =
new HashMap<Principal, AclEntry>(23);
private String aclName = null;
private List<Permission> zeroSet = new ArrayList<Permission>(1);
private ObjectData object;

...
public ObjectData getObject() {
return object;
}

public void setObject(ObjectData object) {
this.object = object;
}
}

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="mod.sun.security.acl">
<class name="AclImpl" table="BEACL">
<id name="aclid" column="aclid">
<generator class="native"></generator>
</id>
...
<one-to-one name="object" class="com.belfast.storage.object.ObjectData" constrained="false"/>
</class>
</hibernate-mapping>

<class name="com.belfast.storage.object.ObjectData" table="BEOBJDATA">
<id name="objectId" column="objectId">
<generator class="native"/>
</id>
...
<one-to-one name="acl" class="mod.sun.security.acl.AclImpl" cascade="delete"></one-to-one>
</class>

public class ObjectData implements Cloneable {

private long objectId;
private AclImpl acl;
}


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.