Thursday, 25 June 2015

Transient and still getting the error "MappingException: Could not determine type"

So I have a POJO with a field annotated as @Transient as in

private Workbook workbook;
    @Transient
    public Workbook getWorkbook() {
        return workbook;
    }
    public void setWorkbook(Workbook workbook) {
        this.workbook = workbook;
    }


But I am still getting the error:

Caused by: org.hibernate.MappingException: Could not determine type for: org.apache.poi.ss.usermodel.Workbook,


Solution: Check your import for @Transient.

If you are using 'import java.beans.Transient;' then you have the wrong one.

It wants to be 'import javax.persistence.Transient'


It looks like this error depends on the type of object you are making transient. If the object is String then it does not complain. In my case I had a poi Workbook class.

Friday, 8 May 2015

subclipse - saving or reusing your SVN repositories

So you want to reuse your list of SVN repositories in another WORKSPACE or in another install of eclipse.

If you use Subversive it is very easy to backup your SVN repositiories:

    This is done by simply going to File -> Export -> Select from General -> Preferences.
    Then on the next step you can tick from a list the preferences you want to export.
    In this list, SVN preferences and SVN repositories should be included.

I have found no way of doing this in Subclipse, so here is a manual method.
NB though it is a total copy, there is no way to just copy a limited set of SVN repositories.

    Navigate to the dir YOUR_WORKSPACE/.metadata/.plugins/org.tigris.subversion.subclipse.core       In there there is a file '.svnProviderState'
    This is a binary file but just copy this to the new WORKSPACE in the equivelent directory & that is it.

(Thanks to a colleague at work - Philip Lau for this)

Tuesday, 28 April 2015

oracle - listing locks & removing them

While logged in as sysadmin, SQL to list any locks on a particular table:
SELECT SID,SERIAL# 
FROM V$SESSION 
WHERE SID IN (SELECT SESSION_ID 
FROM DBA_DML_LOCKS 
WHERE NAME = 'SOME_TABLE_NAME');
SQL to remove a specific lock, using the values from the above SQL:
ALTER SYSTEM KILL SESSION 'SID,SERIALl#';

Thursday, 2 October 2014

Hibernate - annotation mappings and misleading SerializationException

Took me a few hours to get to the bottom of this.
I was getting the following Exception, which did not make sense as the deSerialization test passed OK.
I have a domain object that I had proved through a unit test that I could serialize & deserialize successfully.


My domain object contained the following object which if I removed then worked OK:


But tomcat & my integration test were both failing with the following Exception.


It turns out I had missed out an annotation, obvious really but I could not spot the error & the Exception was totally misleading. What had I missed? The '@manyToOne' annotation. Twit.

Tuesday, 15 April 2014

Eclipse & the error 'Specified VM install not found: type Standard VM, name'

Scenario:

  • I had a project that was previously building OK
  • At some point I upgraded the version of java
  • Came to rebuild the project and the Ant build was failing with the error popup
    • Specified VM install not found: type Standard VM, name
    • & it was referring to an old JDK that did not exist on my PC & was not referred to by eclipse with the list of installed JREs
  • I searched in the project for the JDK listed 'jdk1.6.0_26' 
    • No luck - could not find anythine
  • I deleted the project & reloaded it from SVN
    • Still No luck - I got the same error

After a bit of googling, I found this site http://www.javaworkspace.com/VMNotFound.do
I went for option '2' of edting the launch file in the directory simply renaming the JDK after stopping eclipse.
  • C:\projects\WORKSPACE\.metadata\.plugins\org.eclipse.debug.core\.launches
All sorted now thanks.

Tuesday, 8 April 2014

sqlserver 2012 installation - a few possible gotchas

I have just installed sqlserver 2012 on the same server as one using 2008.
All was good as for accessing through both Management Studios but I struggled to get the web applications to connect to the 2012 databases.

These are all probably standard SQLServer Gotchas but they all got me.

Gotchas:

  1. In the config I created a user 'sa' but this was disabled by default
    1. find the user, right click & go to properties
    2. click on 'Status' & select Enabled
  2. The database it self did not allow Sql Server authentication.
    1. Right click on the database server instance & select Properties
    2. click on Security
    3. Select the second option 'SQL Server & Windows Authentication'
  3. Port Configuration
    1. The default port for SQL server is 1433 so I needed to set up a different port for 2012
    2. Run up the 'SQL Server Configuration Manager'
    3. Inder the tab 'SQL Server Network Configuration' there will be two entries, one for the 2008 service & one for the 2012 service
    4. Select tge 2012 service
    5. select the TCP/IP protocal name & Right click & select Properties
    6. Select the 'IP Addresses' tab
    7. On mine the 'TCP Port' field was blank for all entries. I changed everyone to be 1533
Job done I can now connect with my user 'sa' using a standard conmection string but the new port number of 1533

Thursday, 19 December 2013

sqlServer Management Studio not remembering users & passwords

Since I had a new Windows build for my PC I have had the very annoying bug that SQLServer Management Studio would not remember the username & passwords for hosts.

The Workarounds tab here provides the solution, but is essence it is this:

Rename:
SQL Server Management Studio 2008 delete the file C:\Users\%username%\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin

SQL Server Management Studio 2005 delete the file – same as above answer but the Vista path. C:\Users\%username%\AppData\Roaming \Microsoft\Microsoft SQL Server\90\Tools\Shell\mru.dat