Hibernate oneToOne points to same class

Hi , sorry for posting this here but i think the calahary desert gets more traffic than the hibernate forums , i have a problem with a hiberante entity that points to same type class entity that i can't seem to get hibernate to work with
public class User implements Serializable{
private User referer;
@Id
@NotNull
@Column(name="username")
public String getUserName() {return userName;}
public void setUserName(String userName) {this.userName = userName;}
@NotNull
@OneToOne
@PrimaryKeyJoinColumn
public User getReferer() {return referer;}
public void setReferer(User referer) {this.referer = referer;}
}i've tried other ways like mappedby="userName" etc.. but it keeps rejecting it any idea why ?

Kernel_77 wrote:
Duffy i think you a bit on the extreme saying that a hibernate annotation has got nothing to do with hibernate isn't completly true No, I said that the problem seems to have little to do with Hibernate and everything to do with a lack of understanding of relational databases and foreign key relationships.
ofcourse hibernate mirrors rational relathionship that's the whole idea in it and the JPA .Yes, I get it. You're misunderstanding me.
DB wise the FK is defined to username which is the PK and i still think you are not correct ,i read hibernate's manual again and mapped by refers to the way in which the relathionship on the other side (where each annotation is defined)
is MappedBy . Nope, I'd say you're the one that's wrong and Hibernate seems to agree with me.
the problem here is how to define the relation on the "other side" username when both are in the same class .You still haven't posted the table, so I'll try to make something up to show you how it's done. I'll post it as soon as I can.
%

Similar Messages

  • Referencing fields between objects of same class

    Say I have created multiple TicketMachines from this class. Is there a way I create a method that uses "System.out.println" that would print the price of another TicketMachine object. And if so, could you please point me in the direction to find out how.
    * TicketMachine models a naive ticket machine that issues
    * flat-fare tickets.
    * The price of a ticket is specified via the constructor.
    * It is a naive machine in the sense that it trusts its users
    * to insert enough money before trying to print a ticket.
    * It also assumes that users enter sensible amounts.
    * @author David J. Barnes and Michael Kolling
    * @version 2006.03.30
    public class TicketMachine
        // The price of a ticket from this machine.
        private int price;
        // The amount of money entered by a customer so far.
        private int balance;
        // The total amount of money collected by this machine.
        private int total;
        //Creates a machine that issues tickets at a default price of 1000.
        public TicketMachine( )
         //Exercise 2.39  & 2.42(continues below)
          * By removing the parameter from this constructer
          * and setting the value of price to 1000, objects
          * from this class are automatically constructed with
          * a ticket price of 1000.
            price = 1000;
            balance = 0;
            total = 0;
        //Exercise 2.42
         * Create a machine that issues tickets of the given price.
         * Note that the price must be greater than zero, and there
         * are no checks to ensure this.
        public TicketMachine(int thePrice)
            price = thePrice;
            balance = 0;
            total = 0;
         * Return the price of a ticket.
        public int getPrice()
            return price;
         * Return the amount of money already inserted for the
         * next ticket.
        public int getBalance()
            return balance;
         * Receive an amount of money in cents from a customer.
        public void insertMoney(int amount)
            balance = balance + amount;
         * Print a ticket.
         * Update the total collected and
         * reduce the balance to zero.
        public void printTicket()
            // Simulate the printing of a ticket.
            System.out.println("##################");
            System.out.println("# The BlueJ Line");
            System.out.println("# Ticket");
            System.out.println("# " + price + " cents.");
            System.out.println("##################");
            System.out.println();
            // Update the total collected with the balance.
            total = total + balance;
            // Clear the balance.
            balance = 0;
        //Exercise 2.33
        //Prints "Please insert the correct amount of money." to the text terminal.
        public void prompt()
            System.out.println("Please insert the correct amount of money.");
        //Exercise 2.34
        //Displays the value of the price field in the text terminal.
        public void showPrice()
            System.out.println("The price of a ticket is " + price + " cents.");
        //Exercise 2.35
         * After creating two ticket machines with different prices
         * and calling thier showPrice methods it showed a different
         * output for each instance. This effect happenes because the
         * showPrice method prints out a string and the value of the price
         * field, which happens to be different in each instance, thereby
         * printing a different output.
        //Exercise 2.36
         * The result of System.out.println("# " + "price" + " cents.");
         * would print the string "# price cents." to the text terminal.
        //Exercise 2.37
         * The result of System.out.println("# price cents.");
         * would be the same as the result of exercise 2.36.
        //Exercise 2.40
        //This method is a mutator and takes no parameters
        //Empties the money form the ticket machine
        public void empty()
            total = 0;
        //Exercise 2.41
        //This method is a mutator
        //Changes the price of a ticket
        public void setPrice(int newPrice)
            price = newPrice;
    }

    Objects can refer to fields in other objects of the same class.
    It's not clear from your description what you're trying to accomplish, however.

  • Synchronisation methods in same class

    I have three methods in same class A,B,C IN which A,B synchronised and c not.
    my question is if one thread is in A.another thread cann access B OR C?

    jverd wrote:
    Syncing a block on the object pointed to by X
    synchronized (X) { /* do stuff */}simply waits until no other thread is synced on that object, and then enters the block.
    Declaring a non-static method synchronized is the same as doing synchronized (this) { /* do stuff */ }Calling a non-synced method or executing a non-synced block or statement does not wait for the lock.Duke-wh0ring?? :)

  • Multiple windows of the same class with a different argument

    Suppose I have a main window with a list of users. If I click on any one user, the "chat window" should open with the argument as that "user".
    If i click on another, a similar "chat window" should open but with a different user.
    I can't have so many stages because I don't know how many users are there.
    How do I open multiple windows of the same class but with a different argument?

    Here is a sample (opens, at random locations, a bunch of child windows parameterized by color).
    Could be simpler, but hopefully you get the gist.
    import java.util.Random;
    import javafx.application.Application;
    import javafx.geometry.Rectangle2D;
    import javafx.scene.Scene;
    import javafx.scene.control.Label;
    import javafx.scene.layout.StackPane;
    import javafx.stage.*;
    public class ColoredStages extends Application {
      final String[] colors = { "firebrick", "palegreen", "azure", "chocolate", "goldenrod" };
      final Random random = new Random(42);
      Rectangle2D screenBounds;
      public static void main(String[] args) { launch(args); }
      @Override public void start(Stage stage) {
        screenBounds = Screen.getPrimary().getVisualBounds();
        stage.setTitle("Primary");
        stage.setScene(new ColoredScene("cornsilk"));
        stage.show();
        for (String color : colors) {
          Stage coloredStage = new ColoredStage(stage, color);
          coloredStage.show();
      class ColoredStage extends Stage {
        ColoredStage(Stage owner, String color) {
          super();
          initOwner(owner);
          initStyle(StageStyle.UTILITY);
          setX(screenBounds.getMinX() + random.nextInt((int) screenBounds.getWidth()));
          setY(screenBounds.getMinY() + random.nextInt((int) screenBounds.getHeight()));
          setScene(new ColoredScene(color));
      class ColoredScene extends Scene {
        ColoredScene(String color) {
          super(new StackPane());
          StackPane layout = (StackPane) getRoot();
          layout.getChildren().addAll(new Label(color));
          layout.setStyle("-fx-font-size: 20px; -fx-padding: 30px; -fx-background-color: " + color);
    }

  • Accessing a private variable from a public method of the same class

    can anyone please tell me how to access a private variable, declared in a private method from a public method of the same class?
    here is the code, i'm trying to get the variable int[][][] grids.
    public static int[][] generateS(boolean[][] constraints)
      private static int[][][] sudokuGrids()
        int[][][] grids; // array of arrays!
        grids = new int[][][]
        {

    Are you sure that you want to have everything static here? You're possibly throwing away all the object-oriented goodness that java has to offer.
    Anyway, it seems to me that you can't get to that variable because it is buried within a method -- think scoping rules. I think that if you want to get at that variable your program design may be under the weather and may benefit from a significant refactoring in an OOP-manner.
    If you need more specific help, then ask away, but give us more information please about what you are trying to accomplish here and how you want to do this. Good luck.
    Pete
    Edited by: petes1234 on Nov 16, 2007 7:51 PM

  • Two threads in the same class ? Is that possible ?

    Hello, I am trying to use threads to move two images around the frame. And I am wondering if it is possible if it is possible to create two separate threads that act differently in the same class, for each of the image.
    Is just that so far I can't see a way since, by implementing Runnable, I'll need to overwrite the run() method. Which in a way just allows me to manage one image.
    Of course I can do two separate classes (each implementing Runnable) for each of the image, but since I think it may be an overkill, I rather to do it in just one.
    So, is that possible ?
    Thank you in advance.

    Of course I can do two separate classes (each implementing Runnable) for each of the image,Use two instances of the same class. Something like this example:
    http://forum.java.sun.com/thread.jspa?forumID=57&threadID=631379

  • How to use ActionListener and ItemListener in the same class

    Why can't I use both ActionListener and ItemListener in the same Class?
    I want to use a drop down list and an entry box on the same form.
    How? I'm having trouble compling......
    Thanks!
    CODE:
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    public class Disp extends Applet implements ActionListener, ItemListener
    { TextField entry=new TextField(7);
    Button Enter=new Button("Enter");
    public void init()
    add(entry);
    add(Enter);
    entry.addActionListener(this);
    entry.requestFocus();
    Enter.addActionListener(this);
    public void actionPerformed(ActionEvent thisEvent)
    String answer=entry.getText();

    Simply get your Applet to implement both ActionListener and ItemListener.
    public class MyApplet extends Applet implements ActionListener, ItemListener
      public void init()
        itemWidget.addItemListener(this):
        actionWidget.addActionListener(this);
      public void actionPerformed(ActionEvent e)
        System.out.println("ACTION PERFORMED!");
      public void itemStateChanged(ItemEvent e)
        System.out.println("ITEM STATE CHANGED!");
    }Hope this helps.

  • How to create an object within the same class???

    hi im just a newbie
    i v been always creating an object from the main class..
    but how to create an object inside the same class??
    i got main and students class
    the main got an array
    Students[] stu = new Students[]
    and i got
    stu[i] = new Students(id,name);
    i++;
    but i wanna do these things inside the Students class..
    i tried ..but i got errors.....
    how to do this
    .

    javaexpert, :)
    I really have no idea what you are trying to do since you say you've always been creating an object from the main class, yet you always want to create an object inside the same class.
    I'll assume that you have an object in the main class that you are trying to access from the Students class.
    If you are trying to access objects that are contained within the main class FROM the Students class, then know that there are two ways of doing so, one being static, and the other dynamic (look up definitions if unclear):
    1.) make the objects in the main class both static and public and access the the objects using a convention similiar to: Main.object; It's important to note that Main is the name of your main class, and object is a static object. There are better ways of doing this by using gettter/setter methods, but I'll omit that tutorial.
    2.) Create a new instance of the main class and access the objects using a similiar fashion: Main myInstance = new Main(); myInstance.myObject;
    You should really use getter and setter methods but I'll omit the code. In terms of which approach is better, step one is by far.
    I don't mean to be condecending, but you should really brush up on your programming skills before posting to this forum. This is a fundamenetal concept that you will encounter time and time again.

  • How to convert the class in the one package to same class in the other pack

    How to convert the class in the one package to same class in the other package
    example:
    BeanDTO.java
    package cho3.hello.bean;
    public class BeanDTO {
    private String name;
    private int age;
    * @return
    public int getAge() {
         return age;
    * @return
    public String getName() {
         return name;
    * @param i
    public void setAge(int i) {
         age = i;
    * @param string
    public void setName(String string) {
         name = string;
    BeanDTO.java in other package
    package ch03.hello;
    public class BeanDTO {
    private String name;
    private int age;
    * @return
    public int getAge() {
         return age;
    * @return
    public String getName() {
         return name;
    * @param i
    public void setAge(int i) {
         age = i;
    * @param string
    public void setName(String string) {
         name = string;
    My converter lass lokks like
    public class BeanUtilTest {
         public static void main(String[] args) {
              try
                   ch03.hello.BeanDTO bean=new ch03.hello.BeanDTO();
              bean.setAge(10);
              bean.setName("mahesh");
              cho3.hello.bean.BeanDTO beanDto=new cho3.hello.bean.BeanDTO();
              ClassConverter classconv=new ClassConverter();
              //classconv.
              System.out.println("hi "+beanDto.getClass().toString());
              System.out.println("hi helli "+bean.toString()+" "+bean.getAge()+" "+bean.getName()+" "+bean.getClass());
              Object b=classconv.convert(beanDto.getClass(),(Object)bean);
              System.out.println(b.toString());
              beanDto= (cho3.hello.bean.BeanDTO)b;
              System.out.println(" "+beanDto.getAge()+" "+beanDto.getName() );
              }catch(Exception e)
                   e.printStackTrace();
    But its giving class cast exception. Please help on this..

    Do you mean "two different layers" as in separate JVMs or "two different layers" as in functional areas running within the same JVM.
    In either case, if the first class is actually semantically and functionally the same as the second (and they are always intended to be the same) then import and and use the first class in place of the second. That's beyond any question of how to get the data of the first into the second if and when you need to.
    Once you make the breakthrough and use one class instead of two I'd guess that almost solves your problem. But if you want to describe your architecture a little that would help others pin down want you're trying to do.

  • Passing values between methods in the same class

    Hi,
    How to pass internal tables or values between methods in the same class.
    How to check if the internal method in another method is initial or not.
    How to see if the method has already been executed.
    Thanks.

    Just declare the internal table as an attribute in the class - that way every method in this class has access to it.
    Since any method has access to all class attributes you can easily check if the internal table is initial or not.
    I am not aware of any standard functionality if a method has already been executed or not, one way would be to declare a class attribute for each method and set it once the method has been executed. That way every method in that class would know which method has already been executed or not.
    Hope that helps,
    Michael

  • Glassfish v3 ClassCastException for same class, at a List.get() command.

    Hello everyone,
    I am in the process of developing a small web application with JSF 2.0 and JPA, both of which I am not entirely familiar with. But thanks to Google and a lot of very dedicated experts, the Java and JSF forums have helped me with creating a basic form for entering and storing data. I am using Netbeans 6.8 which has glassfish V3 for the app server. However I have a problem where the auto-deploy in glass fish ends up giving me a ClassCastException for the same class, which after a bit of research on the net, seems to be a classloader problem.
    A related link http://72.5.124.102/thread.jspa?messageID=10119180 probably confirms the cause as a hot-deploy issue.
    My JSF page is created dynamically in the constructor of the managed bean, and it is here that I get the exception occasionally. A restart of the server solves the issue. Nevertheless, I would like to know if there is any other way to solve the classloader problem other than using a build.xml file as suggested in the forum link given above.
    I am posting a part of my code as well, so that if you think there a classloader problem in my code, you can let me know, so I can fix it.
    @ManagedBean(name = "CustomFields")
    @RequestScoped
    public class CustomFields {
        private String tableName;
        private List<UiSetup> dispFieldsList = new ArrayList();
        private HtmlPanelGrid customPanelSec = new HtmlPanelGrid();
        public HtmlPanelGrid getCustomPanelSec() {
            return customPanelSec;
        public void setCustomPanelSec(HtmlPanelGrid customPanelSec) {
            this.customPanelSec = customPanelSec;
        public String getTableName() {
            return tableName;
        public void setTableName(String tableName) {
            this.tableName = tableName;
        public CustomFields() {
            System.out.println("Invoked customFields backing bean");
            String callerBean = "";
            FacesContext context = FacesContext.getCurrentInstance();
            Application application = context.getApplication();
            tableName = context.getExternalContext().getRequestParameterMap().get("callerPage");
            callerBean = context.getExternalContext().getRequestParameterMap().get("backingBean");
            // This is a JPA contoller class for an entity that defines the custom fields that have to be enabled for this page.
            UiSetupJpaController fldsToShow = new UiSetupJpaController();
            dispFieldsList.clear();
            System.out.println("Did this1");
            // This function getDisplayFields gets the fields that have to be shown on the page.
            this.dispFieldsList = fldsToShow.getDisplayFields(tableName);
            System.out.println("Did this2");
            int totFields = this.dispFieldsList.size();
            System.out.println("Did this3");
            UiSetup us = this.dispFieldsList.get(totFields - 1);// This is where the error is thrown always.
            System.out.println("Did this4");
            customPanelSec.getChildren().clear();
            for (int i = 0; i < totFields; i++) {
                try {
                    HtmlPanelGrid fldLblGroup = new HtmlPanelGrid();
                    HtmlOutputLabel customLabel = (HtmlOutputLabel) application.createComponent(HtmlOutputLabel.COMPONENT_TYPE);
                    String labelName = dispFieldsList.get(i).getDisplayName();
                    customLabel.setValue(labelName);
                    String fieldName = dispFieldsList.get(i).getFieldName();
                    HtmlPanelGroup customField = (HtmlPanelGroup) application.createComponent(HtmlPanelGroup.COMPONENT_TYPE);
                    HtmlInputText customText = new HtmlInputText();
                    String valExp = "#{" + callerBean + "." + fieldName + "}";
                    customText.setId(fieldName);
                    customText.setValueExpression("value", createValueExpr(valExp, BigDecimal.class, context));
                    customField.getChildren().clear();
                    customField.getChildren().add(customText);
                    customPanelSec.getChildren().add(customLabel);
                    customPanelSec.getChildren().add(customField);
                }catch (Exception e) {
                    System.out.println(e.getMessage());
        private ValueExpression createValueExpr(String valexp, Class cls, FacesContext fcs) {
            return fcs.getApplication().getExpressionFactory().createValueExpression(fcs.getELContext(), valexp, cls);
    }The error message is as follows
    com.sun.faces.mgbean.ManagedBeanCreationException: Cant instantiate class: karma.com.managedbeans.master.CustomFields.
    at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:193)
    at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:102)
    at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:405)
    at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:267)
    Caused by: java.lang.ClassCastException: karma.com.model.ui.UiSetup cannot be cast to karma.com.model.ui.UiSetup
    at karma.com.managedbeans.master.CustomFields.<init>(CustomFields.java:397)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:188)
    ... 82 moreRegards,
    Swati

    Thanks very much for your reply. I have implemented your suggestion of using a PostConstruct method with the @ManagedProperty to inject the values into the tableName and the callerBean properties. The good news is that the page is rendered correctly and I haven't encountered the exception the few times that I invoked the page.
    However, I can't be sure the issue is resolved, since, like I mentioned, the error is seemingly erratic and I don't quite know if it is not seen because of a genuine fix or because, well, its currently not in a mood to show up.
    There is just one more thing I would like to mention. I have said that the code fails at the List.get() line. However, its not happening because the list is empty. In fact the earlier lines are giving expected outputs and totFields value is set all right. Maybe this has nothing to do with the error, but I thought I will mention it all the same, in case it triggers another idea altogether.
    Thanks very much
    Regards
    Swati

  • How to find that 2 references are pointing to same obejct??

    how to find that 2 references are pointing to same obejct??
    i feel that hashCode and equals will not work as far as i understood from javadoc

    I wnat to know above because i want to check if ps in
    this loop is same object or on each iteration new
    object is created
    for (int i = 0; i < 10 ;i ++)
    PreparedStatement ps = con.prepareStatement(sql);
    ps.setInt(1,i);
    ps.executeUpdate();}
    Here's a better question. Why in the world did you put that statement in the loop in the first place, unless the variable 'sql' is modified within?

  • Can one obj access a private variable of another obj of the same class

    Can one object access a private variable of another object of the same class?
    If so, how?

    Declaring variable private means you can not access this variable outside class
    But other objects of same class can access it. Because each object have separate copy of variable and may have diff. contents for same variable.

  • Why system is being allow user twice enrollment for the same Class

    How system allow user to enroll twice for the same class, it's strange for us. These status is being shown under
    the learner tab.
    1.Cancelled from Current Class
    2.Prior Attended (sucessful_attendance_flag = y')
    Could you pls advice, why is showing twice record instead of updation same status by Learner.
    Thanks

    Contact Oracle Support, they can help you.
    Regards Anders Northeved

  • How to Differntiate between two instances of the same class ????

    I don't even know if my question makes sense or not ??
    I don't have any code written for it yet.. but its the most critical task for me..
    Q ??
    say i have multiple objects running of the same class on the same box.
    sth like a CPU can have multiple ports. The port class is intantiated
    to create every new port for CPU as required.
    Now i have to differntiate multiple ports on that box and give
    accordingly its statistics back to CPU. sth like how many acces to
    ports, how much bandwidth available, how many bits.. i know how to
    calculate statistics of ports but i don't know how to differentiate
    between multiple ports ??
    Eg: Number of sessions created on oneport is 14 and other is 25. Then i
    have to give differnt statistics of these 2 ports back to CPU.
    I hope all this made some sense ???
    Thank youuuuu....reply back if u need some more details....
    Edited by: javanewbie83 on Jun 16, 2008 4:28 PM

    javanewbie83 wrote:
    I don't even know if my question makes sense or not ??
    I don't have any code written for it yet.. but its the most critical task for me..
    Q ??
    say i have multiple objects running of the same class on the same box.
    For an example: (its just a correlation to my project.. its actually not CPU and port numbers.. sorry if u misunderstand...)
    sth like a CPU can have multiple ports. The port class is intantiated
    to create every new port for CPU as required.
    Now i have to differntiate multiple ports on that box and give
    accordingly its statistics back to CPU. sth like how many acces to
    ports, how much bandwidth available, how many bits.. i know how to
    calculate statistics of ports but i don't know how to differentiate
    between multiple ports ??
    Eg: Number of sessions created on oneport is 14 and other is 25. Then i
    have to give differnt statistics of these 2 ports back to CPU.
    I hope all this made some sense ???
    Thank youuuuu....reply back if u need some more details....Simply repeating your unclear original post does not magically make it clear.

Maybe you are looking for

  • I have a C309g Photosmart Premium All-in-One printer that the paper transport mechanism rumbles

    My computer operating system is Windows XP An error message "Remove Paper Jam" occurs when I am trying to print even when there is no paper in the printer. It also rumbles as it scans a document to the computer but it takes almost 3 times longer than

  • Blue/Black screen when I woke up this morning.

    Hi all I woke up this morning to my phone displaying blue/black lines on my screen with no picture :/! It has rather confused and I'm unsure what to do. I have had the phone for over a year and any help would be appreciated. Thanks, Gregor

  • Excel 2007  send by email

    I an having trouble trying to e mail this and then downloading on excel 2007 is this something I can do?

  • Rudimentary automated PDF generation using Delivers

    Hi Everyone, Thought I would share a little proof of concept I have managed to get working. I know there are simpler ways to have done this but our scenario was as follows: Needed to generate 1000 odd customer reports. A dashboard which had already b

  • How to view video's in iOS7 that used to work in iOS 6

    After updating to iOS7 (7.0.3) I no longer can view or use airplay to view show's/video's that I could reliably view before using Safari  (i.e. Washington Week, Market to Market, etc).  I can do it with my MacBook Pro on OSX 10.9 but no longer on my