MySQL Delete On Joined Tables

If you want to (for example) delete all users with the guest role from your database : DELETE FROM user WHERE EXISTS ( SELECT * FROM role WHERE role.id = user.role_id AND role.name = 'guest' );

December 2, 2007 · 1 min · Dave Perrett

Get complete AppFuse sources

To get the complete, exploded source of an AppFuse application, run : $ mvn appfuse:full-source

November 28, 2007 · 1 min · Dave Perrett

Appfuse "failed to lazily initialize a collection of role"

If you are getting a failed to lazily initialize a collection of role error in AppFuse , you need to un-comment the lazyLoadingFilter filter and associated filter-mapping in src/main/webapp/WEB-INF/web.xml . <filter> <filter-name>lazyLoadingFilter</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>lazyLoadingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

November 27, 2007 · 1 min · Dave Perrett

Skip AppFuse Tests

To skip tests when compiling/running AppFuse applications, add the -Dmaven.test.skip=true argument to your Maven call : $ mvn jetty:run-war -Dmaven.test.skip=true

November 27, 2007 · 1 min · Dave Perrett

Hibernate OneToMany Relationships

Here’s an example of a one-to-many relationship using Spring MVC and Hibernate with annotations. The Album class has many Photo s, and each Photo belongs to an Album. ...

November 26, 2007 · 3 min · Dave Perrett

Hibernate 'TYPE=storage_engine is deprecated'

If you are getting errors similar to WARN [main] JDBCExceptionReporter.logWarnings(49) | 'TYPE=storage_engine is deprecated; use ENGINE=storage_engine instead' in hibernate, it probably means you are using MySQL5 but have your application set up for MySQL4. In your applications database settings config file ( pom.xml in my case, otherwise might be in properties.xml or something) change the hibernate.dialect setting from MySQLInnoDBDialect to MySQL5InnoDBDialect : <hibernate.dialect>org.hibernate.dialect.MySQL5InnoDBDialect</hibernate.dialect>

November 21, 2007 · 1 min · Dave Perrett

Multibyte-safe CSV Parser

I recently had to write a PHP CSV parser for a project, and found the built-in fgetcsv function fairly useless for real-world CSVs (where some fields are quoted and some aren’t for example, or where escaped delimiters or quotes are present inside the field text). This function should handle : Lines where some fields are quoted and some aren’t Lines where quoted fields have ’escaped’ quotes inside them Lines where non-quoted fields have ’escaped’ delimiters inside them Lines where the quote is ’escaped’ by another quote (the default behaviour for Excel CSV exports) Lines containing multi-byte strings ...

August 9, 2007 · 2 min · Dave Perrett

JScript Debugger for IE

First, download and install the debugger from the IE Blog Next, you need to make sure that debugging is enabled in the IE options. Go to Tools->Internet Options->Advanced and make sure these options are de-selected : ...

July 26, 2007 · 1 min · Dave Perrett

Javascript Hash Class

After recently switching from prototype to the incredible jQuery, I had trouble finding an altermative for prototype’s Hash class. I ended up writing one based on MojaveLinux ’s Javascript Hash Table article. It implements the length, first, keys, invoke, each, remove, item, itemByIndex, set and hasKey functions. You’ll need some extra array functions to use this class. ...

July 25, 2007 · 2 min · Dave Perrett

OS X zsh shell config

Here’s a zsh shell configuration file for OS X, based almost entirely on a post at Fried CPU . All i changed was the ls and ll aliases because Fried’s didn’t work for me. To use it, save it in a file called .zshrc in your home directory. You might also want to set zsh as your default shell . ...

July 25, 2007 · 4 min · Dave Perrett